Android: создать массив ROW_IDS из курсора - но как? - PullRequest
0 голосов
/ 07 января 2011

У меня есть коллекция БД (SQLite), и я хочу создать массив ROW_IDS.Я думаю, что должно работать следующее:

db.open();
String Chapter = "Something";
Cursor c = db.getSetsByChapter(Chapter);
int[] ids = {};
if (c.moveToFirst()){
    int i = 0;     
 do {
 ids[i] = Integer.parseInt(c.getString(0));
 i++;
 } while (c.moveToNext());
}


db.close();
Toast.makeText(this,"The array contains " + ids.length + " elements",Toast.LENGTH_LONG).show();

, но я продолжаю получать: Невозможно начать действие Компонент ... java.lang.ArrayIndexOutOfBoundsException

Я очень новичок в кодировании Java и Android,Я занимаюсь этим уже 3 дня и теряю это!

Ответы [ 2 ]

0 голосов
/ 07 января 2011

Вам нужно выделить массив. Используйте List<int> и затем преобразуйте список в массив целых чисел

0 голосов
/ 07 января 2011

Во-первых, вам нужно показать нам, в какой строке происходит исключение.

Во-вторых, int[] ids = {}; объявляет массив целых чисел длиной 0. Затем вы пытаетесь

 ids[i] = Integer.parseInt(c.getString(0));

поместить данные в индекс 0. Это невозможно, и, следовательно, исключение индекса массива за пределами границ.

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