光标和获取数据的问题?
问题描述:
我创建了一个表,并尝试使用光标如下来从它的数据:光标和获取数据的问题?
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,根据我的说法,每次我不知道什么是错误时,每次都会提取数据,因此每次有人会告诉我这里有什么问题?
答
检查您得到的光标是否为空。如果是,那么光标计数是什么。你可以通过下面的方式做到这一点。
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");
}
答
尝试这样
你调试代码,它总是在上面,你检查光标的大小if语句。 – Prateek 2013-02-23 05:54:29
确保getContent未返回空值。而不是检查r.getCount()调用r.moveToFirst(),然后使用r.isAfterLast == true。 – 2013-02-23 06:22:37