Bagaimana saya bisa mendapatkan nilai bidang boolean dalam database SQLite di Android?
Saya biasanya menggunakan getString()
,, getInt()
dll. Untuk mendapatkan nilai dari bidang saya, tapi sepertinya tidak ada getBoolean()
metode.
Bagaimana saya bisa mendapatkan nilai bidang boolean dalam database SQLite di Android?
Saya biasanya menggunakan getString()
,, getInt()
dll. Untuk mendapatkan nilai dari bidang saya, tapi sepertinya tidak ada getBoolean()
metode.
Jawaban:
Ini:
boolean value = cursor.getInt(boolean_column_index) > 0;
>0
lebih pendek dalam byte: P
Tidak ada tipe data bool dalam SQLite. Gunakan int yang Anda perbaiki ke 0 atau 1 untuk mencapai efek itu. Lihat referensi tipe data pada SQLite 3.0 .
boolean value = (cursor.getInt(boolean_column_index) == 1);
Sebagian besar jawaban di sini dapat menghasilkan NumberFormatExceptions atau "operator tidak ditentukan untuk tipe null, int" jika kolom tempat Anda menyimpan int diizinkan juga memiliki null. Cara yang layak untuk melakukan ini adalah menggunakan
Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`
meskipun Anda sekarang terbatas untuk menyimpan string "benar" dan "salah" daripada 0 atau 1.
Implementasi yang ditemukan di Ormlite Cursor juga memeriksa Null yang tidak dilakukan oleh jawaban lain.
public boolean getBoolean(int columnIndex) {
if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
return false;
} else {
return true;
}
}
Anda juga bisa menggunakan
boolean value =cursor.getString(boolean_column_index).equals("True");
Pilihan lain
boolean value = (cursor.getString(column_index)).equals("1");
Yah, itu sangat sederhana:
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;
}