2011-08-29 9 views
5

मैं android.os.Parcel से readBooleanArray का उपयोग करने का प्रयास कर रहा हूं, लेकिन पढ़ें BooleanArray शून्य लौटाता है और इसके लिए यह स्पष्ट नहीं है कि इस विधि का उपयोग कैसे करें।Parcel.readBooleanArray() का उपयोग कैसे करें?

मैं निम्न विधि का उपयोग कर रहा पार्सल के लिए कुछ लिखने के लिए:

public void writeToParcel(Parcel out, int flags) { 
    out.writeBooleanArray(new boolean[] {value}); 
} 

कैसे यह मान Parcelable निर्माता में प्राप्त किया जाना चाहिए?

उत्तर

13

मुझे विश्वास है कि आपको एक बुलियन [] पास करने की आवश्यकता है, पार्सल में मानों की प्रतिलिपि बनाई जाएगी, फिर आप उस सरणी से पढ़ लेंगे।

नमूना कोड:

boolean[] myBooleanArr = new boolean[1]; 
parcel.readBooleanArray(myBooleanArr); 
boolean value = myBooleanArr[0]; 
+0

धन्यवाद यह वही है जो मैं ढूंढ रहा था। – Joost

+0

क्या आपको कभी समस्या का सामना करना पड़ा है जब आपको कुछ बूलियन पार्सल करने की ज़रूरत है ... मेरे पास है। क्या आप कृपया मेरी मदद कर सकते हैं> http: //stackoverflow.com/questions/13463727/readbooleanarray-throws-runtimeexceptionbad-array-lengths। धन्यवाद। –

1

आप एक असली बूलियन सरणी, न केवल एक मूल्य है, और आप सरणी की लंबाई पता नहीं है, तो आप createBooleanArray() बजाय readBooleanArray(boolean[]) उपयोग कर सकते हैं। यह एक नई सरणी वापस कर देगा जो आप पार्सल में writeBooleanArray(boolean[]) के साथ डालते हैं।

संबंधित मुद्दे