gpt4 book ai didi

android - Android Cursor.moveToNext() 文档是否正确?

转载 作者:IT王子 更新时间:2023-10-29 06:24:38 25 4
gpt4 key购买 nike

boolean android.database.Cursor.moveToNext() 文档说:

http://developer.android.com/reference/android/database/Cursor.html#moveToNext%28%29

将光标移动到下一行。

如果光标已经超过结果集中的最后一个条目,则此方法将返回 false。


但是,我的书说要执行以下操作以从游标中提取数据:

Cursor myCursor = myDatabase.query(...);if (myCursor.moveToFirst()) {    do {    int value = myCursor.getInt(VALUE_COL);    // use value    } while (myCursor.moveToNext());}

谁是对的?这些都不可能是真的。如果看不出矛盾,假设 myCursor 从查询中返回了 1 行。对 getInt() 的第一次调用将起作用,但随后 moveToNext() 将返回 true,因为它还没有“已经”超过结果集中的最后一个条目。所以现在光标将越过最后一个条目,第二次调用 getInt() 将做一些未定义的事情。

我怀疑文档有误,应该改为:

如果光标“已经位于”结果集中的最后一个条目,则此方法将返回 false。

在 moveToNext() 方法返回 false 之前,光标必须已经是 PAST(不是 AT)最后一个条目吗?

请不要打蛇

最佳答案

一个更简单的成语是:

Cursor cursor = db.query(...);
while (cursor.moveToNext()) {
// use cursor
}

这是可行的,因为初始光标位置是 -1,请参阅 Cursor.getPosition()文档。

您还可以通过此 Google Code Search query 在 Android 源代码本身中找到游标的用法。 . SQLite 数据库和内容提供程序中的游标语义相同。

引用文献:this question .

关于android - Android Cursor.moveToNext() 文档是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5985753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com