SQLite显示分配给表的数据

问题描述 投票:0回答:1

我正在制作一个记住CountDownTimer值的Android应用程序(类似于最佳得分)。我已经构建了一个存储值的SQLite数据库。但是现在我想创建一个新的活动(比如登录活动),用户在其中签名,然后CountDownTimer活动只打开这个用户分数。

java android sqlite
1个回答
0
投票

在活动中,您通过查询数据库创建的Cursor从数据库中提取数据。然后,使用提取的数据填充相应的视图或视图。

假设您的数据库有一个名为timervalues的表,其中有2列名为cdt_value和userid,那么提取数据的代码可以是: -

    Cursor csr = db.query("timervalues",null,"userid=?",new String[]{Long.toString(userid_to_find)},null,null,null);

然后,您可以使用以下内容从光标检索数据: -

    long[] scores = new long[csr.getCount];
    while (csr.moveToNext) {
        scores[csr.getPosition] = csr.getLong(csr.getColumnIndex("cdt_value");

    }
    csr.close();

因此,如果你有一个TextView,它的id设置为tv_score,你想显示第一个分数,那么你可以使用: -

    this.findViewById(R.id.tv_score).setText(Long.toString(scores[0]));

如果你想使用ListView将分数显示为列表,那么你就不会使用你使用对象数组的long数组(你可以使用Long),或者直接使用Cursor。

假设您有一个ListView,其id设置为lv_scorelist,那么您可以使用: -

    ListView scorelist = this.findViewById(R.id.lv_scorelist);
    Cursor csr = db.query("timervalues",null,"userid=?",new String[]{Long.toString(userid_to_find)},null,null,null);
    sca = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_1,csr,new String[]{"cdt_value"},new int[]{android.R.id.text1},0);
    scorelist.setAdapter(sca);

笔记

  • 对于游标适配器,必须存在一个名为_id的列,这可以通过使用“rowid AS _id,*”而不是null作为WITHOUT ROWID方法的第二个参数来提取游标时实现(如果表定时器值未使用query定义)而不是 Cursor csr = db.query("timervalues",null,"userid=?",new String[]{Long.toString(userid_to_find)},null,null,null); 它可能是 Cursor csr = db.query("timervalues","rowid AS _id,*","userid=?",new String[]{Long.toString(userid_to_find)},null,null,null);
© www.soinside.com 2019 - 2024. All rights reserved.