2010-11-03 13 views
152

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

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

उत्तर

322

यह है:

boolean value = cursor.getInt(boolean_column_index) > 0; 
+26

cursor.getInt (boolean_column_index)! = 0 @Buttink '> 0' हालांकि बाइट में कम है और अधिक मानक है सी – Buttink

+1

: पी –

43

SQLite में कोई बूल डेटा प्रकार नहीं है। उस प्रभाव को प्राप्त करने के लिए आप एक int का उपयोग करें जिसे आप 0 या 1 पर ठीक करते हैं। datatypes reference पर SQLite 3.0 पर देखें।

5

तुम भी

boolean value =cursor.getString(boolean_column_index).equals("True"); 
+5

बराबर() में –

18
boolean value = (cursor.getInt(boolean_column_index) == 1); 
+0

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

8

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

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

उपयोग करने के लिए किया जाएगा, हालांकि आप अब तार भंडारण के लिए सीमित हैं "सही" और "गलत" नहीं बल्कि 0 से या 1.

+5

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

+0

यदि गॉबर का कहना है कि सत्य है, तो यह उत्तर –

+0

आह डाउनवॉर्टेड होने का हकदार है, वह सही है। मुझे लगता है कि परिणाम की स्पष्टता तारों को स्टोर करने से अधिक है। – Sojurn

3

एक अन्य विकल्प

boolean value = (cursor.getString(column_index)).equals("1"); 
6

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

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

बूलियन ख = (cursor.getInt (cursor.getColumnIndex ("आइटम")) = 0!);

3

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

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

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

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

या

boolean b = (cursor.getInt(boolean_column_index) != 0); 
संबंधित मुद्दे