最近在做有关contentProvider的东西,发现网上的代码对cursor进行遍历,大多是这样的:
if (cursor!=null) {
while (cursor.moveToNext()) {
...
}
}
一开始觉得很奇怪,为什么直接就moveToNext,这样不就跳过第一条数据了吗,后来发现,一开始的cursor的index是-1,这样直接写moveToNext,就可以保证每条都遍历一遍了。
看了看网上别人的写法,发现还有两种方式可以遍历,并且更为直观:
if (cursor != null && cursor.moveToFirst()) {
do {
...
} while (cursor.moveToNext());
}
或者
if (cursor != null && cursor.moveToFirst()) {
while (!cursor.isAfterLast()) {
...
cursor.moveToNext();
}
}