为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕姐8265434 2019-07-31 09:28:18
如何将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");



查看完整回答
反对 回复 2019-07-31
?
料青山看我应如是

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");`



查看完整回答
反对 回复 2019-07-31
?
海绵宝宝撒

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");


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 504 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信