Android और SQLite का उपयोग कर डेटाबेस से बूलियन प्राप्त करें


169

मैं एंड्रॉइड पर SQLite डेटाबेस में बूलियन फ़ील्ड का मूल्य कैसे प्राप्त कर सकता हूं ?

मैं आमतौर पर उपयोग करें getString(), getInt()आदि मेरी क्षेत्रों के मूल्यों को प्राप्त करने के लिए, लेकिन वहाँ एक होना प्रतीत नहीं होता है getBoolean()विधि।

जवाबों:




23
boolean value = (cursor.getInt(boolean_column_index) == 1);

भले ही यह सवाल (एलेक्स का सबसे करीबी) के अनुरूप नहीं है, यह एक उत्कृष्ट जवाब है, और मैं इसका उपयोग करूंगा।
बुदिमीर ग्रोम

10

यहां अधिकांश जवाब नं .FormatException में हो सकते हैं या "ऑपरेटर प्रकार null, int" के लिए अपरिभाषित है, यदि आपने जिस कॉलम में int संग्रहीत किया है वह भी शून्य रखने की अनुमति दी गई थी। ऐसा करने का सभ्य तरीका उपयोग करना होगा

Boolean.parseBoolean(cursor.getString(booleanColumnIndex));`

हालाँकि अब आप 0 या 1 के बजाय स्ट्रिंग्स को "सही" और "गलत" स्टोर करने तक सीमित हैं।


5
यह काम नहीं करता। बूलियन.पर्सबुलियन "सच" या "झूठे" तार लेता है। यदि आपने अपने बूलियन को 0 या 1 के रूप में संग्रहीत किया है, तो आप हमेशा गलत होंगे।
गबराल जूल

अगर रॉबर्ट ने जो कहा है वह सच है, तो यह जवाब
नीचा दिखाने के

आह, वह सही है। मुझे लगता है कि परिणाम की स्पष्टता के कारण स्ट्रिंग्स को स्टोर करना होगा।
सोजर्न

1
दूसरे जवाब में @ServinAsgari अगर आप अपने बूलियन को सही या गलत के रूप में संग्रहीत करते हैं तो यह हमेशा गलत होगा। तो इसे आपके तर्क से भी ख़त्म किया जाना चाहिए।
अरदा कारा

6

Ormlite Cursor में पाया गया कार्यान्वयन Null के लिए भी जाँच करता है, जो अन्य उत्तरों में से कोई भी नहीं करता है।

   public boolean getBoolean(int columnIndex) {
        if (cursor.isNull(columnIndex) || cursor.getShort(columnIndex) == 0) {
            return false;
        } else {
            return true;
        }
    }



3

booleanइसमें डेटाटाइप उपलब्ध नहीं है Cursor

आपको परिणाम ए में मिलेगा int, इसलिए आपको उस intमूल्य को ए में बदलने की आवश्यकता है boolean

आप या तो उपयोग कर सकते हैं

boolean b = cursor.getInt(boolean_column_index) > 0;

या

boolean b = (cursor.getInt(boolean_column_index) != 0);

2

बूलियन बी = (कर्सर.गेटआईएनटी (कर्सर.गेट कल्मनीइंडेक्स ("आइटम") =! = 0);


0

खैर, यह बहुत आसान है:

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;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.