使用Android和SQLite从数据库获取布尔值

我怎样才能获得Android上的SQLite数据库中的布尔值字段的值?

我通常使用getString()getInt()等来获取我的字段的值,但似乎没有getBoolean()方法。

它是:

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

SQLite中没有bool数据types。 使用您修复为0或1的int来实现该效果。 请参阅SQLite 3.0上的数据types引用 。

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

这里的大多数答案都可能导致NumberFormatExceptions,或者如果您存储int的列也被允许也为null,则“操作符对于types为null的int未定义”。 这样做的体面的方式将是使用

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

尽pipe现在只限于存储string“true”和“false”,而不是0或1。

在Ormlite Cursor中find的实现也检查Null,其他答案都没有。

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

你也可以使用

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

另外一个select

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

boolean数据types在Cursor不可用。

你会得到一个int的结果,所以你需要将该int值转换为一个boolean

你可以使用

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

要么

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

boolean b =(cursor.getInt(cursor.getColumnIndex(“item”))!= 0);