如何获取Android上的SQLite数据库中布尔型字段的值?使用Android和SQLite从数据库获取布尔值
我通常使用getString()
,getInt()
等来获取我的字段的值,但似乎没有getBoolean()
方法。
如何获取Android上的SQLite数据库中布尔型字段的值?使用Android和SQLite从数据库获取布尔值
我通常使用getString()
,getInt()
等来获取我的字段的值,但似乎没有getBoolean()
方法。
是:
boolean value = cursor.getInt(boolean_column_index) > 0;
SQLite中没有bool数据类型。使用您修复为0或1的int来实现该效果。请参阅SQLite 3.0上的datatypes reference。
您还可以使用
boolean value =cursor.getString(boolean_column_index).equals("True");
equals()不包含 – 2013-10-11 18:16:50
boolean value = (cursor.getInt(boolean_column_index) == 1);
即使不完全对应这个问题(Alex's是最接近的),这是一个很好的答案,我会用这个。 – 2014-12-16 15:34:15
这里大部分的答案可能会导致NumberFormatExceptions或 “运算符是不确定的各类空,INT” 如果您存储int的列也被允许保留为空。 体面的方式来做到这一点是使用
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
虽然你现在仅限于存储字符串“真”与“假”,而不是0或1
另一种选择
boolean value = (cursor.getString(column_index)).equals("1");
在Ormlite Cursor找到的实现还检查其他答案都没有。
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
boolean b =(cursor.getInt(cursor.getColumnIndex(“item”))!= 0);
boolean
数据类型在Cursor
中不可用。
您将在int
中得到结果,因此您需要将该值转换为boolean
。
既可以使用
boolean b = cursor.getInt(boolean_column_index) > 0;
或
boolean b = (cursor.getInt(boolean_column_index) != 0);
cursor.getInt(boolean_column_index)!= 0 是更标准C. – Buttink 2014-02-28 21:53:56
@Buttink'> 0'是以字节为单位更短虽然:P – 2017-02-09 14:52:54