没有moveToFirst的Cursor.moveToNext

下一个代码会按预期工作吗?

Cursor c = db.query(tableName, requestedColumns, condition, conditionParams, null, null, sortOrder); while(c.moveToNext()) { //do stuff with rows } 

到目前为止我发现的例子建议在循环之前调用c.moveToFirst() ,但这是否真的有必要?

是的,它会工作, moveToNext实际上调用moveToFirst

是的,它会工作,第一个moveToNext()会将光标指向结果集的第一个条目,(如果结果集有值)

答案很晚,但也许对其他人有用。 我一直在使用:“if()do {} while();” 循环。 如果游标中没有返回任何行,则“moveToFirst()”函数返回false。 当游标的结束时,“moveToNext()”函数返回false:

 Cursor c = db.query(......); if (c.moveToFirst()) do { data = c.getString(0) // eg. get value from first column in cursor // do something more } while (c.moveToNext()); c.close();