Указатель курсора Ошибка границ Android? - PullRequest
3 голосов
/ 04 января 2012

Эй, я получаю индекс из-за ошибки в моем коде.

Из Деятельности:

            Cursor cursor = mDbHelper.fetchA(b);
            @SuppressWarnings("static-access")
            int a = (int) cursor.getDouble(cursor.getColumnIndex(mDbHelper.KEY_I));
            cursor.close();

Адаптер моей БД:

public Cursor fetchA(String b){
    return mDb.query(DATABASE_TABLE, new String[] {KEY_I}, "b=\""+B+"\"", null, null, null, null);
}

Ошибка:

    E/AndroidRuntime( 5766): FATAL EXCEPTION: main

    E/AndroidRuntime( 5766): android.database.CursorIndexOutOfBoundsException: Index

     -1 requested, with a size of 1

Как я могу это исправить?

Ответы [ 2 ]

5 голосов
/ 04 января 2012

Курсоры начинают указывать на позицию перед первой строкой.Следовательно, вам нужно переместить курсор в первую строку, прежде чем вы сможете получить данные.Cursor#moveToFirst() или #moveToNext() должны выполнять эту работу.

Cursor cursor = mDbHelper.fetchA(b);
cursor.moveToNext();
@SuppressWarnings("static-access")
int a = (int) cursor.getDouble(cursor.getColumnIndex(mDbHelper.KEY_I));
cursor.close();
0 голосов
/ 04 января 2012
Cursor cursor = mDbHelper.fetchA(b);
startManagingCursor(cursor);
cursor.moveToNext();
.......

Вот ваш поисковый код.

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