gpt4 book ai didi

android - 迭代 Android 光标的最佳方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 12:50:29 26 4
gpt4 key购买 nike

我经常看到涉及对数据库查询结果进行迭代、对每一行执行某些操作、然后移动到下一行的代码。典型例子如下。

Cursor cursor = db.rawQuery(...);
cursor.moveToFirst();
while (cursor.isAfterLast() == false)
{
...
cursor.moveToNext();
}
Cursor cursor = db.rawQuery(...);
for (boolean hasItem = cursor.moveToFirst();
hasItem;
hasItem = cursor.moveToNext()) {
...
}
Cursor cursor = db.rawQuery(...);
if (cursor.moveToFirst()) {
do {
...
} while (cursor.moveToNext());
}

这些对我来说似乎都过于冗长,每个都多次调用 Cursor 方法。肯定有更整洁的方法吗?

最佳答案

最简单的方法是这样的:

while (cursor.moveToNext()) {
...
}

光标开始第一个结果行之前,所以在第一次迭代时,它会移动到第一个结果如果它存在。如果游标为空,或者最后一行已经处理完毕,则循环退出。

当然,完成后不要忘记关闭光标,最好是在 finally 子句中。

Cursor cursor = db.rawQuery(...);
try {
while (cursor.moveToNext()) {
...
}
} finally {
cursor.close();
}

如果您的目标是 API 19+,则可以使用 try-with-resources。

try (Cursor cursor = db.rawQuery(...)) {
while (cursor.moveToNext()) {
...
}
}

关于android - 迭代 Android 光标的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723770/

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