Jak mogę uzyskać wartość pola logicznego w bazie danych SQLite na Androidzie?
Zwykle używam getString()
, getInt()
itp., Aby uzyskać wartości moich pól, ale wydaje się, że nie ma getBoolean()
metody.
To jest:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
jest jednak krótszy w bajtach: PW SQLite nie ma typu danych bool. Aby osiągnąć ten efekt, użyj wartości int, którą ustawiasz na 0 lub 1. Zobacz dokumentację dotyczącą typów danych w SQLite 3.0 .
źródło
źródło
Większość odpowiedzi w tym miejscu może skutkować NumberFormatExceptions lub „operator jest niezdefiniowany dla typów null, int”, jeśli kolumna, w której zapisano int, może również zawierać wartość null. Przyzwoitym sposobem na zrobienie tego byłoby użycie
chociaż teraz jesteś ograniczony do przechowywania ciągów „prawda” i „fałsz” zamiast 0 lub 1.
źródło
Implementacja znaleziona w Ormlite Cursor sprawdza również wartość Null, czego nie robi żadna z innych odpowiedzi.
źródło
Możesz także użyć
źródło
Inna opcja
źródło
boolean
typ danych nie jest dostępny wCursor
.otrzymasz wynik w postaci
int
, więc musisz przekonwertować tęint
wartość na aboolean
.Możesz użyć
lub
źródło
boolean b = (kursor.getInt (kursor.getColumnIndex ("pozycja"))! = 0);
źródło
Cóż, to bardzo proste:
źródło