답변:
그것은:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
는 바이트 단위로 짧습니다. : P
SQLite에는 bool 데이터 유형이 없습니다. 그 효과를 얻으려면 0 또는 1로 고정하는 정수를 사용하십시오. SQLite 3.0 의 데이터 유형 참조 를 참조 하십시오 .
boolean value = (cursor.getInt(boolean_column_index) == 1);
여기에있는 대부분의 답변은 NumberFormatExceptions 또는 int를 저장 한 열이 null을 보유 할 수있는 경우 "null, int 유형에 대해 연산자가 정의되지 않았습니다"가 발생할 수 있습니다. 이 작업을 수행하는 적절한 방법은
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
현재는 0 또는 1 대신 "true"및 "false"문자열을 저장하는 것으로 제한되어 있습니다.
Ormlite Cursor 에서 찾은 구현 은 다른 답변 중 어느 것도 수행하지 않는 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");
아주 간단합니다.
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;
}