Android getColumName и getColumnIndex - PullRequest
       3

Android getColumName и getColumnIndex

6 голосов
/ 22 декабря 2010

Я новичок в Android и у меня проблема с курсором.Я не могу получить доступ к данным с помощью: cursor.get(cursor.getColumnIndex(columnName));

Я попробовал следующий код для проверки на наличие ошибки:

while (cursor.moveToNext()) {
        int x = 2;
        Log.i("MyDebug", "Index: " + x);
        Log.i("MyDebug", "Name: " + cursor.getColumnName(x));
        Log.i("MyDebug", "Index again: " + cursor.getColumnIndex(cursor.getColumnName(x)));
    }

Результат с монитора отладки:

Index: 2 
Name: mainMenu.title 
Index again: -1

Разве результат "Индекс снова" не должен быть 2?Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 22 декабря 2010

cursor.getColumnIndex() ожидает имя столбца без имени таблицы:

cursor.getColumnIndex("mainMenu.title"); // -1
cursor.getColumnIndex("title"); // 2
0 голосов
/ 10 августа 2012

У меня была похожая проблема, и я решил ее, дав псевдонимы столбцов в моем довольно сложном запросе, затем я использовал эти псевдонимы в качестве ссылок, например: Начало моего запроса:

SELECT lith.drill_id, lith.depth_from,
...
...

cursor.getColumnIndex("depth_from") gave -1

Затем я добавил псевдонимы столбцов:

SELECT lith.drill_id AS drill_id, lith.depth_from as depth_from,
...
...

cursor.getColumnIndex("depth_from") затем дал правильное значение.

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