दिलचस्प पोस्ट
एनएसआरुन लूप को समझना पिक्चरबॉक्स पर पारदर्शी नियंत्रण एक खिड़कियों सेवा कैसे प्रोग्राम शुरू कर सकता है? jquery: अपने पाठ के द्वारा एक विकल्प कैसे चुन सकता है? ऑफ़लाइन होने पर OKHttp के साथ रेट्रोफ़िट कैश डेटा का उपयोग कर सकते हैं कोवेरिएंस और इलिस्ट दो सरणियों के बीच अंतर आप जेएसपी में क्लासेस कैसे आयात करते हैं? एंड्रॉइड SQLite में "_id" फ़ील्ड के बारे में क्यों दोनों isset () और खाली चेक () चल रहा है rmi सर्वर, वर्ग नापसंद JQuery का उपयोग करने के लिए विशिष्ट आइटम कैसे स्क्रॉल करें? एक बीएटी फाइल में कई बीएटी फ़ाइलों को चलाने के लिए VBA (एक्सेल) में पंक्तियों के माध्यम से लूप का सबसे प्रभावी / तेज़ तरीका क्या है? Singletons वास्तव में है कि बुरा कर रहे हैं?

कैसे एक गतिविधि से दूसरे में ArrayList <CustomeObject> पास करें?

मैं एक गतिविधि से निम्नलिखित ArrayList भेजना चाहता हूं, कृपया मदद करें

ContactBean m_objUserDetails = new ContactBean(); ArrayList<ContactBean> ContactLis = new ArrayList<ContactBean>(); 

मैं इसके बाद के संस्करण में डेटा जोड़ने के बाद उपरोक्त arraylist भेज रहा हूँ

  Intent i = new Intent(this,DisplayContact.class); i.putExtra("Contact_list", ContactLis); startActivity(i); 

लेकिन मुझे इसे ठीक करने में समस्या हो रही है

 ArrayList<ContactBean> l1 = new ArrayList<ContactBean>(); Bundle wrapedReceivedList = getIntent().getExtras(); l1= wrapedReceivedList.getCharSequenceArrayList("Contact_list"); 

इस बिंदु पर मुझे यह त्रुटि मिल रही है:

 Type mismatch: cannot convert from ArrayList<CharSequence> to ArrayList<ContactBean> 

मेरे संपर्क बीन वर्ग सीरियलजबल को लागू करता है कृपया यह भी बताएं कि हमें सीरिजलाज करने योग्य इंटरफ़ेस को कार्यान्वित करना क्यों है।

वेब के समाधान से एकत्रित समाधान "कैसे एक गतिविधि से दूसरे में ArrayList <CustomeObject> पास करें?"

आप एक ArrayList<E> उसी तरह से पारित कर सकते हैं, यदि E प्रकार Serializable

आप स्टोर करने के लिए Intent के putExtra (String name, Serializable value) को कॉल करेंगे, और पुनः प्राप्त करने के लिए getSerializableExtra (String name) प्राप्त करेंगे।

उदाहरण:

 ArrayList<String> myList = new ArrayList<String>(); intent.putExtra("mylist", myList); 

अन्य गतिविधि में:

 ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist"); 

पहली गतिविधि में ..

 ArrayList<ContactBean> fileList = new ArrayList<ContactBean>(); Intent intent = new Intent(MainActivity.this, secondActivity.class); intent.putExtra("FILES_TO_SEND", fileList); startActivity(intent); 

रिसीवर गतिविधि में:

 ArrayList<ContactBean> filelist = (ArrayList<ContactBean>)getIntent().getSerializableExtra("FILES_TO_SEND");` 

आपको अपने ContactBean वर्ग में पार्सलेबल की आवश्यकता होती है, मैंने आपके लिए एक उदाहरण रखा है:

 public class ContactClass implements Parcelable { private String id; private String photo; private String firstname; private String lastname; public ContactClass() { } private ContactClass(Parcel in) { firstname = in.readString(); lastname = in.readString(); photo = in.readString(); id = in.readString(); } @Override public int describeContents() { // TODO Auto-generated method stub return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(firstname); dest.writeString(lastname); dest.writeString(photo); dest.writeString(id); } public static final Parcelable.Creator<ContactClass> CREATOR = new Parcelable.Creator<ContactClass>() { public ContactClass createFromParcel(Parcel in) { return new ContactClass(in); } public ContactClass[] newArray(int size) { return new ContactClass[size]; } }; // all get , set method } 

और यह आपके कोड के लिए मिलते हैं और सेट करते हैं:

 Intent intent = new Intent(this,DisplayContact.class); intent.putExtra("Contact_list", ContactLis); startActivity(intent); 

द्रितीय श्रेणी:

 ArrayList<ContactClass> myList = getIntent().getParcelableExtra("Contact_list"); 

इस कोड का उपयोग ऐन्थिएयर गतिविधि को सरलीचलने के लिए करें ..

सबसे पहले हमारे संपर्क बीन serialize

 public class ContactBean implements Serializable { //do intialization here } 

अब अपने सरणी को पास करें ..

  Intent intent = new Intent(this,name of activity.class); contactBean=(ConactBean)_arraylist.get(position); intent.putExtra("contactBeanObj",conactBean); _activity.startActivity(intent);