Holen Sie sich boolesche Werte aus der Datenbank mit Android und SQLite

Lesezeit: 1 Minute

Benutzer-Avatar
Kevin Bradshaw

Wie erhalte ich den Wert eines booleschen Felds in einer SQLite Datenbank auf Android?

Ich benutze normalerweise getString(), getInt()usw., um die Werte meiner Felder zu erhalten, aber es scheint keine zu geben getBoolean() Methode.

Benutzer-Avatar
Alex Orlow

Es ist:

boolean value = cursor.getInt(boolean_column_index) > 0;

  • cursor.getInt(boolean_column_index) != 0 ist mehr Standard-C.

    – David Strumpf

    28. Februar 2014 um 21:53 Uhr

  • @ Buttin >0 ist aber kürzer in Bytes 😛

    – Gurupad Mamadapur

    9. Februar 2017 um 14:52 Uhr


  • Stapelüberlauf 不爱不行

    – linjiejun

    7. Januar 2021 um 2:40 Uhr

  • Einen optionalen (nullable) booleschen Wert finden Sie in der folgenden Antwort: stackoverflow.com/a/65828389/7493938

    – Mario Huizinga

    21. Januar 2021 um 13:26 Uhr

Benutzer-Avatar
NG.

Es gibt keinen bool-Datentyp in SQLite. Verwenden Sie ein int, das Sie auf 0 oder 1 fixieren, um diesen Effekt zu erzielen. Siehe die Datentypen Referenz an SQLite 3.0.

boolean value = (cursor.getInt(boolean_column_index) == 1);

  • Auch wenn es dieser Frage nicht genau entspricht (die von Alex ist am nächsten), ist es eine ausgezeichnete Antwort, und ich werde diese verwenden.

    – Budimir Grom

    16. Dezember 2014 um 15:34 Uhr

Benutzer-Avatar
Sojurn

Die meisten Antworten hier können zu NumberFormatExceptions oder “Operator ist für die Typen null, int nicht definiert” führen, wenn die Spalte, in der Sie die int gespeichert haben, auch null enthalten durfte. Der anständige Weg, dies zu tun, wäre die Verwendung

Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`

obwohl Sie jetzt darauf beschränkt sind, die Zeichenfolgen “true” und “false” anstelle von 0 oder 1 zu speichern.

Benutzer-Avatar
rtack

Eine Implementierung gefunden unter Ormlite-Cursor prüft auch auf Null, was keine der anderen Antworten tut.

   public boolean getBoolean(int columnIndex) {
        if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
            return false;
        } else {
            return true;
        }
    }

Benutzer-Avatar
AndyD273

Sie können auch verwenden

boolean value =cursor.getString(boolean_column_index).equals("True");

Benutzer-Avatar
Gökhan Arik

Andere Option

boolean value = (cursor.getString(column_index)).equals("1");

1345130cookie-checkHolen Sie sich boolesche Werte aus der Datenbank mit Android und SQLite

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy