如何将ArrayList <CustomeObject>从一个活动传递给另一个?

我想发送以下ArrayList从一个活动到另一个请帮助。

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

在添加数据之后,我将发送上面的数组列表,如下所示

  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> 

我的ContactBean类实现了Serializable,也请告诉我们为什么要实现可串行化的接口。

如果Etypes是可Serializable ,那么可以以相同的方式传递一个ArrayList<E>

您可以调用存储的IntentputExtra (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类中实现 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"); 

使用此代码将arrays列表传递给两性活动..

首先序列化我们的联系人bean

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

现在通过你的ArrayList ..

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