Respuestas:
Es:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
es más corto en bytes: P
No hay ningún tipo de datos bool en SQLite. Use un int que arregle a 0 o 1 para lograr ese efecto. Consulte la referencia de tipos de datos en SQLite 3.0 .
boolean value = (cursor.getInt(boolean_column_index) == 1);
La mayoría de las respuestas aquí pueden dar como resultado NumberFormatExceptions o "el operador no está definido para los tipos nulo, int" si la columna en la que almacenó el int también podía contener nulo. La forma decente de hacer esto sería usar
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
aunque ahora está limitado a almacenar las cadenas "verdadero" y "falso" en lugar de 0 o 1.
Una implementación que se encuentra en Ormlite Cursor también verifica Null, lo que ninguna de las otras respuestas hace.
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
También puedes usar
boolean value =cursor.getString(boolean_column_index).equals("True");
Otra opción
boolean value = (cursor.getString(column_index)).equals("1");
Bueno, eso es muy simple:
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;
}