Получить boolean из базы данных с помощью Android и SQLite
как я могу получить значение логического поля в SQLite база данных на Android?
Я обычно использую getString(),getInt() и т. д. чтобы получить значения моих полей, но там, кажется, не getBoolean() метод.
9 ответов:
в SQLite нет типа данных bool. Используйте int, который вы исправите до 0 или 1 для достижения этого эффекта. Смотрите ссылка на типы данных on SQLite 3.0.
большинство ответов здесь может привести к 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тип данных недоступен вCursor.вы получите результат в
int, так что вам нужно конвертировать, чтоintзначение aboolean.можно использовать
boolean b = cursor.getInt(boolean_column_index) > 0;или
boolean b = (cursor.getInt(boolean_column_index) != 0);
Comments