Android Cursor的正确遍历方法

项目中用到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()) {

      }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容