美文网首页综合素质AndroidAndroid开发
Android Cursor的正确遍历方法

Android Cursor的正确遍历方法

作者: 辽东小码农 | 来源:发表于2015-08-28 16:34 被阅读9565次

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

      }

}

相关文章

网友评论

  • 恨自己不能小清新:正解。不过在判断的时候还要多加一个条件才能判断非空。cursor.getCount() > 0 :smile:
    一个简单搬运工:不用吧,moveToFirst里面对pos和count做了判断了:
    // Make sure position isn't past the end of the cursor
    final int count = getCount();
    if (position >= count) {
    mPos = count;
    return false;
    }

本文标题:Android Cursor的正确遍历方法

本文链接:https://www.haomeiwen.com/subject/mrkkcttx.html