Respostas:
Isto é:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
é mais curto em bytes: P
Não há tipo de dados bool no SQLite. Use um int corrigido para 0 ou 1 para obter esse efeito. Veja a referência de tipos de dados no SQLite 3.0 .
boolean value = (cursor.getInt(boolean_column_index) == 1);
A maioria das respostas aqui pode resultar em NumberFormatExceptions ou "operador não está definido para os tipos nulos, int" se a coluna na qual você armazenou o int tiver permissão para manter também nulo. A maneira decente de fazer isso seria usar
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
embora agora você esteja limitado a armazenar as strings "true" e "false" em vez de 0 ou 1.
Uma implementação encontrada no Cursor Ormlite também verifica Null, o que nenhuma das outras respostas faz.
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
Você também pode usar
boolean value =cursor.getString(boolean_column_index).equals("True");
Outra opção
boolean value = (cursor.getString(column_index)).equals("1");
Bem, isso é muito simples:
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;
}