使用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);