Réponses:
C'est:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
est plus court en octets cependant: P
Il n'y a pas de type de données booléen dans SQLite. Utilisez un int que vous fixez à 0 ou 1 pour obtenir cet effet. Consultez la référence des types de données sur SQLite 3.0 .
boolean value = (cursor.getInt(boolean_column_index) == 1);
La plupart des réponses ici peuvent résulter en NumberFormatExceptions ou "l'opérateur n'est pas défini pour les types null, int" si la colonne dans laquelle vous avez stocké l'int était également autorisée à contenir null. La façon décente de le faire serait d'utiliser
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
bien que vous soyez maintenant limité à stocker les chaînes "vrai" et "faux" plutôt que 0 ou 1.
Une implémentation trouvée sur Ormlite Cursor vérifie également Null, ce qu'aucune des autres réponses ne fait.
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
Vous pouvez aussi utiliser
boolean value =cursor.getString(boolean_column_index).equals("True");
Une autre option
boolean value = (cursor.getString(column_index)).equals("1");
boolean
le type de données n'est pas disponible dans Cursor
.
vous obtiendrez le résultat dans un int
, vous devez donc convertir cette int
valeur en a boolean
.
Vous pouvez soit utiliser
boolean b = cursor.getInt(boolean_column_index) > 0;
ou
boolean b = (cursor.getInt(boolean_column_index) != 0);
Eh bien, c'est très 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;
}