【解决】android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0
android 中数据库处理,特别是使用cursor时,注意初始位置,好像是从下标为-1的地方开始的,也就是说一次查询中,返回给cursor查询结果时,不能够马上从cursor中提取值。
比如,下面的代码会返回错误,android.database.CursorIndexOutOfBoundsException:Index -1 requested, with a size of 0:
int score = ((Cursor)getReadableDatabase().query(TABLE_NAME, new String[]{"learned"}, "_id=?", new String[]{""+id}, null, null, null,"1")).getInt(0); |
正确的用法:
Cursor cursor = getReadableDatabase().query(TABLE_NAME, new String[]{"learned"}, "_id=?", new String[]{""+id}, null, null, null,"1"); |
[解决] Caused by: java.lang.IllegalStateException: get field slot from row 0 col -1 failed
原因有可能如下:
1,检查查询的字段名是否写错
2, 检查游标是否查询出你所需要的字段