我正在尝试从我的SQLite数据库中获取checkedTextView状态,但是它使应用程序崩溃了。
以下是实现的代码:
Cursor c = db.rawQuery("SELECT * FROM list", null);
int foundIndex = c.getColumnIndex("found");
while (c != null) {
c.getString(foundIndex);
c.moveToNext();
}
String[] foundList = new String[foundIndex];
arrayAdapter.notifyDataSetChanged();
for (String found : levelOneListList){
if (levelOneListList == foundList){
levelOneListView.setItemChecked(found.indexOf(foundIndex), true);
}
}
}
它给出了这个错误:
java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.woodlandwanderer / com.example.woodlandwanderer.levelOneActivity}:android.database.CursorIndexOutOfBoundsException:请求的索引-1,大小为0
答案 0 :(得分:0)
错误提示,您的光标大小为0,并且您尝试先访问。
在循环之前添加以下检查。
if (c.moveToNext() && c.getCount()>0) {
答案 1 :(得分:0)
这样读取光标数据。看起来您的光标大小为0。
if (c != null && c.moveToFirst()){
do {
int foundIndex = c.getColumnIndex("found");
c.getString(foundIndex);
} while (c.moveToNext());
c.close(); // close your db cursor
}
// list update and set checkbox value here