如何将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,也请告诉我们为什么要实现可序列化的接口。
3 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
ArrayList<E>
如果E
类型是,您可以以相同的方式传递Serializable
。
你可以调用putExtra (String name, Serializable value)
of Intent
来存储和getSerializableExtra (String name)
检索。
例:
ArrayList<String> myList = new ArrayList<String>();intent.putExtra("mylist", myList);
在其他活动中:
ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("mylist");
料青山看我应如是
TA贡献1772条经验 获得超8个赞
在第一项活动中:
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");`
海绵宝宝撒
TA贡献1809条经验 获得超8个赞
你需要在你的班级实现ParcelableContactBean
,我为你举了一个例子:
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();}@Overridepublic int describeContents() { // TODO Auto-generated method stub return 0;}@Overridepublic 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");
- 3 回答
- 0 关注
- 504 浏览
添加回答
举报
0/150
提交
取消