2010-11-03 14 views

Odpowiedz

322

Jest:

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

cursor.getInt (boolean_column_index)! = 0 jest bardziej standardowy C. – Buttink

+1

@Buttink '> 0' jest krótszy w bajtach chociaż : P –

5

Można również użyć

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

equals() nie zawiera –

18
boolean value = (cursor.getInt(boolean_column_index) == 1); 
+0

Mimo że nie odpowiada dokładnie temu pytaniu (Alex jest najbliższy), jest to doskonała odpowiedź, a ja to wykorzystam. –

8

Większość odpowiedzi tutaj może spowodować NumberFormatExceptions lub "operator jest niezdefiniowana dla typy NULL, int", jeśli kolumna, w której zapisałeś int, mogła również utrzymywać wartość null. przyzwoity sposób to zrobić byłoby użyć

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

choć są teraz ograniczone do przechowywania ciągów „prawda” i „fałsz” raczej niż 0 lub 1.

+5

To nie działa. Boolean.parseBoolean przyjmuje ciągi "true" lub "false". Jeśli zapisałeś boolean jako 0 lub 1, zawsze otrzymasz fałsz. – Gober

+0

Jeśli to, co mówi Gober, jest prawdą, to ta odpowiedź zasługuje na wycofanie. –

+0

Ach, ma rację. Myślę, że jasność wyniku przewyższa konieczność przechowywania ciągów. – Sojurn

3

Inną opcją

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

Implementacja znaleziona pod numerem Ormlite Cursor sprawdza również wartość Null, której nie ma żadna inna odpowiedź.

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

boolean b = (cursor.getInt (cursor.getColumnIndex ("element")) = 0!);

3

boolean typ danych nie jest dostępny w Cursor.

otrzymasz wynik w postaci int, więc musisz przekonwertować wartość int na boolean.

Można użyć

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

lub

boolean b = (cursor.getInt(boolean_column_index) != 0); 
Powiązane problemy