sqlite:看起来像moveToNext没有moveToFirst需要

在创build一个标准的SQLite游标之后,我使用下面的代码遍历条目:

while (cursor.moveToNext()) { } 

所有的行正在正确处理。 我读过的所有文档都指出,您需要发出moveToFirst()来确保指向游标集的第一个条目。

这是否工作,即使它不应该和另一个版本可能没有相同的处理?

Solutions Collecting From Web of "sqlite:看起来像moveToNext没有moveToFirst需要"

不,这是正确的。 Cursor从行索引-1开始(在第一行之前)。 如果Cursor引用多行, while按照您的build议使用while循环遍历它们是首选的方法。 它将调用moveToNext() ,它将您移动到索引0(第一行),并从那里开始。

如果你的Cursor只引用一行,你可以在读取数据前调用moveToFirst()来确保你的索引是有效的。 第一次创buildCursor时, moveToFirst()moveToNext()具有相同的效果,并且位于索引-1处。