我正在尝试从 SQLite 数据库获取 checkTextView 状态,但它导致应用程序崩溃。下面是实现的代码: 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
2 回答
九州编程
TA贡献1785条经验 获得超4个赞
正如错误所示,您的光标大小为 0,并且您正在尝试首先访问。
在循环之前添加以下检查。
if (c.moveToNext() && c.getCount()>0) {
开心每一天1111
TA贡献1836条经验 获得超13个赞
像这样读取光标数据。看起来你的光标大小是 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
添加回答
举报
0/150
提交
取消