尝试从 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