尽管我知道 cursor.getCount() 中只返回一个值,但我遇到了 android 游标循环两次的问题。
我在 DBAdapter 中使用以下内容:
public Cursor getAllSubDetailsFromObsTable() {
Cursor c = mDb
.rawQuery(
"SELECT DISTINCT sub.sub_id, sub.complete, mobileobs.date, mobileobs.location, mobileobs.grid_ref, "
+ "mobileobs.time, mobileobs.protocol_id, mobileobs.endtime FROM sub, mobileobs "
+ "WHERE sub.sub_id = mobileobs.sub_id",
null);
return c;
}
然后我在我的工人阶级中称之为:
db.open();
Cursor c = db.getAllSubDetailsFromObsTable();
while (c.moveToNext()) {
String sub_id = c.getString(0);
//Rest of real code <snipped>
myArrayList.add(sub_id);
}
c.close();
db.close();
但是,当我查看 myArrayList 的内容时,它有两个相同的 sub_id 值。我尝试过使用 c.moveToFirst() 等等等等,但是即使 c.getCount() = 1,我仍然在 arrayList 中得到两个值!