尝试从SQLite DB设置checkedtextview时出错

时间:2019-09-30 13:14:54

标签: java android checkedtextview

我正在尝试从我的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

2 个答案:

答案 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