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

如何将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>

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


慕姐8265434
浏览 506回答 3
3回答

眼眸繁星

ArrayList<E>如果E类型是,您可以以相同的方式传递Serializable。你可以调用putExtra (String name, Serializable value)of&nbsp;Intent来存储和getSerializableExtra (String name)检索。例:ArrayList<String>&nbsp;myList&nbsp;=&nbsp;new&nbsp;ArrayList<String>();intent.putExtra("mylist",&nbsp;myList);在其他活动中:ArrayList<String>&nbsp;myList&nbsp;=&nbsp;(ArrayList<String>)&nbsp;getIntent().getSerializableExtra("mylist");

料青山看我应如是

在第一项活动中:ArrayList<ContactBean>&nbsp;fileList&nbsp;=&nbsp;new&nbsp;ArrayList<ContactBean>();Intent&nbsp;intent&nbsp;=&nbsp;new&nbsp;Intent(MainActivity.this,&nbsp;secondActivity.class);intent.putExtra("FILES_TO_SEND",&nbsp;fileList);startActivity(intent);在接收器活动中:ArrayList<ContactBean>&nbsp;filelist&nbsp;=&nbsp;&nbsp;(ArrayList<ContactBean>)getIntent().getSerializableExtra("FILES_TO_SEND");`

海绵宝宝撒

你需要在你的班级实现ParcelableContactBean,我为你举了一个例子:public&nbsp;class&nbsp;ContactClass&nbsp;implements&nbsp;Parcelable&nbsp;{private&nbsp;String&nbsp;id;private&nbsp;String&nbsp;photo;private&nbsp;String&nbsp;firstname;private&nbsp;String&nbsp;lastname;public&nbsp;ContactClass(){}private&nbsp;ContactClass(Parcel&nbsp;in)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;firstname&nbsp;=&nbsp;in.readString(); &nbsp;&nbsp;&nbsp;&nbsp;lastname&nbsp;=&nbsp;in.readString(); &nbsp;&nbsp;&nbsp;&nbsp;photo&nbsp;=&nbsp;in.readString(); &nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;=&nbsp;in.readString();}@Overridepublic&nbsp;int&nbsp;describeContents()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;TODO&nbsp;Auto-generated&nbsp;method&nbsp;stub &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}@Overridepublic&nbsp;void&nbsp;writeToParcel(Parcel&nbsp;dest,&nbsp;int&nbsp;flags)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;dest.writeString(firstname); &nbsp;&nbsp;&nbsp;&nbsp;dest.writeString(lastname); &nbsp;&nbsp;&nbsp;&nbsp;dest.writeString(photo); &nbsp;&nbsp;&nbsp;&nbsp;dest.writeString(id);} &nbsp;public&nbsp;static&nbsp;final&nbsp;Parcelable.Creator<ContactClass>&nbsp;CREATOR&nbsp;=&nbsp;new&nbsp;Parcelable.Creator<ContactClass>()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ContactClass&nbsp;createFromParcel(Parcel&nbsp;in)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;ContactClass(in); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;ContactClass[]&nbsp;newArray(int&nbsp;size)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;ContactClass[size]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;//&nbsp;all&nbsp;get&nbsp;,&nbsp;set&nbsp;method&nbsp; &nbsp;}并为您的代码获取和设置:Intent&nbsp;intent&nbsp;=&nbsp;new&nbsp;Intent(this,DisplayContact.class);intent.putExtra("Contact_list",&nbsp;ContactLis);startActivity(intent);第二课:ArrayList<ContactClass>&nbsp;myList&nbsp;=&nbsp;getIntent().getParcelableExtra("Contact_list");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android