尝试从 SQLite DB 设置 checkedtextview 时出错
Error when trying to set checkedtextview from SQLite DB
我正在尝试从我的 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: 无法启动 activity ComponentInfo{com.example.woodlandwanderer/com.example.woodlandwanderer.levelOneActivity}: android.database.CursorIndexOutOfBoundsException: 请求索引 -1 , 大小为 0
如错误所示,您的光标大小为 0,您正在尝试先访问。
在循环之前添加以下检查。
if (c.moveToNext() && c.getCount()>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
我正在尝试从我的 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: 无法启动 activity ComponentInfo{com.example.woodlandwanderer/com.example.woodlandwanderer.levelOneActivity}: android.database.CursorIndexOutOfBoundsException: 请求索引 -1 , 大小为 0
如错误所示,您的光标大小为 0,您正在尝试先访问。
在循环之前添加以下检查。
if (c.moveToNext() && c.getCount()>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