Answers:
它是:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
字节虽然更短:P
SQLite中没有布尔数据类型。使用固定为0或1的int可以达到该效果。请参阅SQLite 3.0上的数据类型参考。
boolean value = (cursor.getInt(boolean_column_index) == 1);
如果您将存储int的列也保留为null,则此处的大多数答案都可能导致NumberFormatExceptions或“对于类型为null,int的操作符未定义”。做到这一点的体面方法是使用
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
尽管您现在只能存储字符串“ true”和“ false”,而不是0或1。
在Ormlite游标中找到的实现也检查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");
另外的选择
boolean value = (cursor.getString(column_index)).equals("1");
好吧,这很简单:
public boolean getBooleanState(SQLiteDatabase db){
boolean result = false;
try{
String QUERY = "SELECT " + BOOLEAN_DATA + " FROM " + TABLE_NAME + " WHERE " + ID + " = 1";
Cursor cursor = db.rawQuery(QUERY, null);
if (cursor.moveToFirst()){
if(cursor.getString(0).equalsIgnoreCase("1")){
result = true;
}
}
c.close();
}catch(Exception ee){
Log.e(TAG, "err getBooleanState: " + TABLE_NAME );
}
return result;
}