因此,我有一个查询返回一个具有所有值的Cursor(我用cursor.getCount()确认了此情况,其中返回的int等于数据库中的记录数),但是由于某种原因,无论我使用什么迭代循环写我似乎永远无法检索列表的第一个值.
private void addAllUnsentCrapportsToList() {
mDbAdapter.open();
Cursor cursor = mDbAdapter.getAllCrapports();
cursor.movetoFirst();
String text = "";
while(cursor.isAfterLast() == false){
text = text
+ "typ: " + cursor.getString(cursor.getColumnIndex(DbAdapter.CRAPPORT_KEY_GARBAGETYPE))
+ " kommentar: " + cursor.getString(cursor.getColumnIndex(DbAdapter.CRAPPORT_KEY_COMMENT))
+ "\n";
cursor.movetoNext();
}
unsentCrapportList.setText(text);
}
此代码位显示所有值,但第一个除外.我究竟做错了什么?我尝试了许多方法,包括while,while等,但是总是以相同的错误告终.
我想念什么?
解决方法:
我没有看到您的代码有任何问题.因此,也许您没有从数据库获得第一个值?您是否尝试过在cursor.movetoFirst();之后立即打印数据?看哪个是第一个元素?