我创建了一个表,并尝试使用游标从中获取数据,如下所示:
public Cursor getcontent() {
Cursor d = database.query(DatabaseHandler.Table_Name2,allColumns,selection, null, null,null,null);
return d;
}
Cursor r = X.getcontent();
if (r.getCount() > 0) {
r.moveToFirst();
do {
String id = r.getString(r.getColumnIndex("content_id"));
al.add(id);
MainActivity.tt1.append("\n");
MainActivity.tt1.append(id);
} while (r.moveToNext()==true);
r.close();
} else {
Log.i("TAG"," No value found");
}
}
我在TextView
中显示结果,以查看获取的数据。我的问题是,当我运行此代码时,它有时会显示TextView
中的数据,无论它取得什么,有时它不会。它的比例为50:50,根据我的说法,每当我不知道这里有什么问题时,每次都会显示取值,有人可以告诉我这里有什么问题吗?
答案 0 :(得分:1)
检查你得到的光标是否为空。如果是,那么光标的数量是多少。你可以通过下面的方式去做。
Cursor r = X.getcontent();
if ((r != null) && (r.getCount() > 0)) {
r.moveToFirst();
do {
String id = r.getString(r.getColumnIndex("content_id"));
al.add(id);
MainActivity.tt1.append("\n");
MainActivity.tt1.append(id);
} while (r.moveToNext());
r.close();
} else {
Log.i("TAG"," No value found inside Cursor");
}
答案 1 :(得分:0)
试试这个
Cursor r = X.getcontent();
try {
if (r.moveToFirst()) {
do {
String id = r.getString(r.getColumnIndex("content_id"));
al.add(id);
MainActivity.tt1.append("\n");
MainActivity.tt1.append(id);
} while (r.moveToNext());
}
} finally {
if(r!=null) {
r.close();
}
}