Відповіді:
Це є:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
коротше в байтах: P
У SQLite відсутній тип даних bool. Використовуйте int, який ви фіксуєте на 0 або 1, щоб досягти цього ефекту. Дивіться посилання на типи даних у 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 Cursor, також перевіряє наявність 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");
Ну, це дуже просто:
public boolean getBooleanState(SQLiteDatabase db){
boolean result = false;
try{
String QUERY = "SELECT " + BOOLEAN_DATA + " FROM " + TABLE_NAME + " WHERE " + ID + " = 1";
Cursor cursor = db.rawQuery(QUERY, null);
if (cursor.moveToFirst()){
if(cursor.getString(0).equalsIgnoreCase("1")){
result = true;
}
}
c.close();
}catch(Exception ee){
Log.e(TAG, "err getBooleanState: " + TABLE_NAME );
}
return result;
}