Wie kann ich den Wert eines booleschen Felds in einer SQLite- Datenbank unter Android ermitteln?
Normalerweise verwende ich getString()
, getInt()
usw. die Werte meiner Felder zu bekommen, aber es scheint nicht zu sein getBoolean()
Verfahren.
Es ist:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
ist in Bytes allerdings kürzer: PIn SQLite gibt es keinen Bool-Datentyp. Verwenden Sie ein int, das Sie auf 0 oder 1 festlegen, um diesen Effekt zu erzielen. Siehe die Datentypreferenz unter SQLite 3.0 .
quelle
quelle
Die meisten Antworten hier können zu NumberFormatExceptions oder "Operator ist für die Typen null, int undefiniert" führen, wenn die Spalte, in der Sie das int gespeichert haben, auch null enthalten durfte. Der anständige Weg, dies zu tun, wäre zu verwenden
Sie können jetzt jedoch nur noch die Zeichenfolgen "true" und "false" anstelle von 0 oder 1 speichern.
quelle
Eine bei Ormlite Cursor gefundene Implementierung sucht auch nach Null, was bei keiner der anderen Antworten der Fall ist .
quelle
Sie können auch verwenden
quelle
Andere Option
quelle
boolean
Datentyp ist nicht verfügbar inCursor
.Sie erhalten das Ergebnis in a
int
, daher müssen Sie diesenint
Wert in a konvertierenboolean
.Sie können entweder verwenden
oder
quelle
boolean b = (cursor.getInt (cursor.getColumnIndex ("item"))! = 0);
quelle
Nun, das ist sehr einfach:
quelle