Ошибка при попытке установить проверенный вид из БД SQLite - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь получить свое состояние checkedTextView из базы данных SQLite, но оно приводит к сбою приложения.

Вот реализованный код:

 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 голосов
/ 30 сентября 2019

Считайте данные вашего курсора следующим образом. Похоже, ваш размер курсора равен 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 голосов
/ 30 сентября 2019

Как показывает ошибка, размер курсора равен 0, и вы пытаетесь получить доступ первым.

добавьте следующую проверку перед циклом.

if (c.moveToNext() && c.getCount()>0) {

...