在学习迭代游标时,我learned https://stackoverflow.com/questions/10723770/whats-the-best-way-to-iterate-an-android-cursor我需要首先移动到位置“-1”,然后在循环中使用“moveToNext”:
cursor.moveToPosition(-1);
for (int i = 0; cursor.moveToNext(); i++) {
//do something with the cursor
}
虽然从数学上讲这是有道理的,但我不知道将光标移动到负位置意味着什么。这文档 http://developer.android.com/reference/android/database/Cursor.html#moveToPosition(int)只是说它是有效的——似乎没有说明它是如何使用的。
这仅用于使迭代成为可能,还是位置-1还有其他用例?
光标不应该位于负数位置,光标数据从位置 0 开始,这就是为什么在使用以下命令获取数据之前始终需要将光标移动到第一个位置
if(cursor.moveToFirst()){
//you have data in the cursor
}
现在只需使用 do/while 循环即可遍历光标
do{
//process cursor data
}while(cursor.moveToNext);
你对 for 循环所做的事情打破了这个约定,如果你将光标移动到第一个位置,然后尝试执行你的 for 循环,光标将在你处理第一个位置之前尝试移动到下一个位置。这就是为什么当光标中有 1 个东西时不进入 for 循环
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)