项目中用到Cursor,之前的兄弟是这样写的:
if(cursor ==null) {
Log.w(TAG,"....");
}else{
while(cursor.moveToNext()){
....
}
}
遍历出的结果很奇怪,本来查出10条数据,然通过上述代码遍历会丢数据。在没debug,这段代码时,我排除了好多假设,花了我好久的时间。而且每次遍历的数据条数都在变。
找了好久才发现,这段遍历的方式不对。他就没有把Cursor移动到起始位置。
正确的遍历方式是这样的:
//cursor不为空,moveToFirst为true说明有数据
if(cursor!=null&&cursor.moveToFirst()){
do{
}while(cursor.moveToNext);
}
或着
if(cursor!=null&&cursor.moveToFirst()){
while (!result.isAfterLast()) {
}
}