android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1(zz)

android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 1 
http://blog.csdn.net/competerh_programing/article/details/7396542

 

android 中数据库处理,特别是使用cursor时,注意初始位置,好像是从下标为-1的地方开始的,也就是说一次查询中,返回给cursor查询结果时,不能够马上从cursor中提取值。

比如,下面的代码会返回错误,android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0:

int score =((Cursor)getReadableDatabase().query(TABLE_NAME,newString[]{"learned"},"_id=?",newString[]{""+id},null,null,null,"1")).getInt(0);


正确的用法:
  Cursor cursor = getReadableDatabase().query(TABLE_NAME, new String[]{"learned"}, "_id=?", new String[]{""+id}, null, null, null,"1");
  int learned=0;
  if(cursor.moveToFirst()){
    score= cursor.getInt(0);
  }
  cursor.close();

 

 

posted @ 2014-05-15 10:56  petercao  阅读(9038)  评论(0编辑  收藏  举报