2010-11-03 63 views

回答

322

是:

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

cursor.getInt(boolean_column_index)!= 0 是更標準C. – Buttink 2014-02-28 21:53:56

+1

@Buttink'> 0'是以字節爲單位更短雖然:P – 2017-02-09 14:52:54

5

您還可以使用

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

equals()不包含 – 2013-10-11 18:16:50

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

即使不完全對應這個問題(Alex's是最接近的),這是一個很好的答案,我會用這個。 – 2014-12-16 15:34:15

8

這裏大部分的答案可能會導致NumberFormatExceptions或 「運算符是不確定的各類空,INT」 如果您存儲int的列也被允許保留爲空。 體面的方式來做到這一點是使用

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

雖然你現在僅限於存儲字符串「真」與「假」,而不是0或1

+5

這不起作用。 Boolean.parseBoolean使用「true」或「false」字符串。如果你已經將你的布爾值存儲爲0或1,你總是會得到錯誤的。 – Gober 2013-07-17 12:32:14

+0

如果戈柏說的是真的,那麼這個答案值得被低估 – 2013-10-11 18:16:02

+0

啊,他是對的。我認爲結果的清晰度超過了存儲字符串的重要性。 – Sojurn 2013-10-12 09:22:19

3

另一種選擇

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

Ormlite Cursor找到的實現還檢查其他答案都沒有。

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(「item」))!= 0);

3

boolean數據類型在Cursor中不可用。

您將在int中得到結果,因此您需要將該值轉換爲boolean

既可以使用

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

boolean b = (cursor.getInt(boolean_column_index) != 0); 
相關問題