SQLite显示分配给表的数据

时间:2017-12-21 16:40:42

标签: java android sqlite

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

1 个答案:

答案 0 :(得分:0)

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

假设您的数据库有一个名为 timervalues 的表,其中有两列名为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)或者您#39 ; d直接使用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 的列,这可以通过使用&实现(如果表定时器值未使用WITHOUT ROWID定义) #34; rowid AS _id,*"当提取光标而不是

    时,而不是null作为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);