Получить boolean из базы данных с помощью Android и SQLite



как я могу получить значение логического поля в SQLite база данных на Android?



Я обычно использую getString(),getInt() и т. д. чтобы получить значения моих полей, но там, кажется, не getBoolean() метод.

622   9  

9 ответов:

Это:

boolean value = cursor.getInt(boolean_column_index) > 0;

в SQLite нет типа данных bool. Используйте int, который вы исправите до 0 или 1 для достижения этого эффекта. Смотрите ссылка на типы данных on SQLite 3.0.

boolean value = (cursor.getInt(boolean_column_index) == 1);

большинство ответов здесь может привести к NumberFormatExceptions или "оператор не определен для типов null, int", если столбец, в котором вы хранили int, также имел значение null. Достойный способ сделать это было бы использовать

Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`

хотя теперь вы ограничены хранением строк "true" и "false", а не 0 или 1.

реализация найдена в Курсор Ormlite также проверяет значение Null, которое ни один из других ответов не делает.

   public boolean getBoolean(int columnIndex) {
        if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
            return false;
        } else {
            return true;
        }
    }

вы также можете использовать

boolean value =cursor.getString(boolean_column_index).equals("True");

другой вариант

boolean value = (cursor.getString(column_index)).equals("1");

boolean тип данных недоступен в Cursor.

вы получите результат в int, так что вам нужно конвертировать, что int значение a boolean.

можно использовать

boolean b = cursor.getInt(boolean_column_index) > 0;

или

boolean b = (cursor.getInt(boolean_column_index) != 0);

boolean b = (курсор.getInt (курсор.getColumnIndex ("item"))!= 0);

Comments

    Ничего не найдено.