Головные боли курсора Android - PullRequest
0 голосов
/ 23 ноября 2010

Может кто-нибудь помочь мне понять, почему следующий блок кода продолжает выдавать эту ошибку? Это сводит меня с ума, пытаясь отладить это.

    public int getContactsCountByGroupId(int id) {
      Cursor c = db.rawQuery("SELECT COUNT(*) AS total FROM msg_group_lu WHERE group_id = ?", new String[] {String.valueOf(id)});
      DatabaseUtils.dumpCursor(c);
      int retval = c.getInt(c.getColumnIndex("total"));
    return retval;
}

Дамп, кажется, указывает на это; 0 { всего = 0 }

Это говорит мне о том, что в столбце 0 есть данные, но все же каждый раз он пытается выполнить строку с этим кодом;

int retval = new Integer(c.getInt(c.getColumnIndex("total")));

Это дает мне эту ошибку; CursorIndexOutOfBoundsException: индекс -1 запрошен, с размером 1

Я перепробовал все, что мог придумать, чтобы попытаться это исправить, и я совершенно в замешательстве (

Надеюсь, кто-то знает, что вызывает это.

1 Ответ

2 голосов
/ 23 ноября 2010

попробуйте написать c.moveToNext(); перед выполнением строки

int retval = c.getInt(c.getColumnIndex("total"));

Положение курсора теперь -1. после выполнения команды moveToNext она переходит в 0-ю позицию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...