पर पता ऑब्जेक्ट्स की सरणी को कैसे पास किया जाए, मैं एक इरादा ऑब्जेक्ट के माध्यम से Address ऑब्जेक्ट्स की किसी अन्य गतिविधि को पास करने का प्रयास कर रहा हूं।किसी अन्य Acitvity
जैसा कि पता वर्ग Parcelable इंटरफ़ेस लागू करता है, मैं निम्न कार्य करने का प्रयास करता हूं। मुझे एक जियोकोडर ऑब्जेक्ट से एक सूची पता ऑब्जेक्ट मिला, जिसे मैं पता ऑब्जेक्ट्स की सरणी में परिवर्तित करता हूं। फिर मैंने इस सरणी को इरादे में रखा और गतिविधि को बुलाया।
final Address[] addresses = addresseList.toArray(new Address[addresseList.size()]);
final Intent intent = new Intent(this, SelectAddress.class);
intent.putExtra(SelectAddress.INTENT_EXTRA_ADDRESSES, startAddresses);
startActivityForResult(intent, REQUEST_CODE_ACTIVITY_SELECT_ADDRESSES);
दूसरी गतिविधि पर मैं कोड के निम्नलिखित भाग के साथ इरादे से पता [] पुनर्प्राप्त करने का प्रयास करता हूं। लेकिन अंतिम पंक्ति का कॉल क्लासकास्टएक्सप्शन Landroid.os.Parcelable
के साथ समाप्त होता है।
Bundle bundle = getIntent().getExtras();
Address[] addresses = (Address[]) bundle.getParcelableArray(INTENT_EXTRA_ADDRESSES);
मैं क्या गलत कर रहा हूं? मुझे पता कैसे प्राप्त करना है []।
"हाय मैं एक आशय वस्तु के माध्यम से एक और गतिविधि को पता ऑब्जेक्ट की श्रृंखला पारित करने के लिए कोशिश कर रहा हूँ।" -- क्यूं कर? मेरे लिए, गतिविधियों के बीच जटिल वस्तुओं को गुजरना एक कोड गंध है। यूआरएल पर पैरामीटर प्राप्त करने के रूप में 'इरादा' अतिरिक्त के बारे में सोचें। यदि ये दो वेब पेज थे, तो क्या आप एक लिंक में यूआरएल पर जीईटी पैरामीटर के रूप में 'पता' ऑब्जेक्ट्स का गुच्छा पारित करेंगे? यह मानते हुए कि 'पता' ऑब्जेक्ट्स की सरणी गुजरना अपरिहार्य है, आप जिस वस्तु का सामना कर रहे हैं उसका प्रकार क्या है? 'क्लासकास्ट एक्सेप्शन' लाइन आपको यह बताना चाहिए। – CommonsWare
क्लासकास्टएक्सप्शन द्वारा उल्लिखित प्रकार एक Landroid.os.Parcelable है। – Flo
आप किसी गतिविधि के लिए जटिल वस्तुओं की एक सरणी पारित करने के बारे में चिंताओं के बारे में चिंतित हैं। मैं जो करना चाहता हूं वह उपयोगकर्ता को दूसरी गतिविधि प्रदान कर रहा है जहां वह पते की सूची से चयन कर सकता है, जब पहली गतिविधि में किसी पते की खोज ने कई परिणामों को वापस कर दिया है। स्पिनर में उन्हें प्रदर्शित करने के लिए दूसरी गतिविधि में पते को पारित किए बिना आप इसे कैसे कार्यान्वित करेंगे, ताकि उपयोगकर्ता उनमें से एक का चयन कर सके? – Flo