moveToNext() 为 false

发布于 2024-10-05 06:29:17 字数 324 浏览 0 评论 0原文

//row --> 2
int row = mCursor.getCount();
for (int i = 0; i < row; i++) {
 if (mCursor.moveToPosition(i)){
  int val = mCursor.getInt(mCursor.getColumnIndexOrThrow(UTILI_COLLOC_ID_UTILI))
 }
}

我不明白,因为我的查询中有 2 行。但是当我想用“mCursor.moveToPosition(i)”读取第二行时,所以它是错误的......为什么?

//row --> 2
int row = mCursor.getCount();
for (int i = 0; i < row; i++) {
 if (mCursor.moveToPosition(i)){
  int val = mCursor.getInt(mCursor.getColumnIndexOrThrow(UTILI_COLLOC_ID_UTILI))
 }
}

I don't understand because I have 2 rows in my query. But when I want to read the seconde row with "mCursor.moveToPosition(i)", so it's false...Why ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

欲拥i 2024-10-12 06:29:17

我认为你可以安全地使用

while(mCursor.moveToNext()) {
// code
}

而不是 for 循环

I think you can just safely use

while(mCursor.moveToNext()) {
// code
}

instead of for looping

轻许诺言 2024-10-12 06:29:17

您有 2 行:第 0 行和第 0 行。 1号。我认为这里你的问题是因为你正在循环移动到下一条记录&光标已移至最后一条记录。所以它返回 FALSE。

解决方案:将 mCursor.moveToPosition(1); 放在 for 循环之外。

You have 2 Rows : 0th & 1st . I think here your problem is because you are moving to next record in a loop & cursor already moved to last record. so it return you FALSE.

Solution: put mCursor.moveToPosition(1); out side of for loop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文