我制作的Android应用程序会记住CountDownTimer
值(最佳得分)。我已经构建了一个存储值的SQLite数据库。但是现在我想创建一个新的活动(比如登录活动),用户在其中签名,然后CountDownTimer
活动只打开这个用户得分。
答案 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,*"当提取光标而不是
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);