Parcelable 应用举例

首先,自定义对象必须实现Parcelable,并且创建static final Parcelable.Creator<Contact> CREATOR对象(实现createFromParcel和newArray方法)
自定义对象为:
public static class Contact implements Parcelable {
        String number;
        String displayname;

        public Contact() {
          
        }

        public Contact(String number, String displayname) {
            this.number = number;
            this.displayname = displayname;
        }

        public String getNumber() {
            return number;
        }

        public void setNumber(String number) {
            this.number = number;
        }

        public String getDisplayname() {
            return displayname;
        }

        public void setDisplayname(String displayname) {
            this.displayname = displayname;
        }

        public static final Parcelable.Creator<Contact> CREATOR = new Creator<Contact>() {

          
            public Contact createFromParcel(Parcel source) {
                Log.i("dd","createFromParcel:"+source);
                // TODO Auto-generated method stub
                Contact contact = new Contact();
                contact.displayname = source.readString();
                contact.number = source.readString();

                return contact;
            }

            public Contact[] newArray(int size) {
                // TODO Auto-generated method stub
                return new Contact[size];
            }

        };

        public int describeContents() {
            // TODO Auto-generated method stub
            return 0;
        }

        public void writeToParcel(Parcel dest, int flags) {
            dest.writeString(displayname);
            dest.writeString(number);

        }

    }

其次在intent中放入这个list对象:
ArrayList<Contact> listContacts = new ArrayList<Contact>();
listContacts.add(new Contacts("name1","number1"));
intent.putParcelableArrayListExtra("listContacts", listContacts);

最后在activity中接受对象:
List<Contact> listContacts=new ArrayList<Contact>();
                listContacts=data.getParcelableArrayListExtra("listContacts");
                for(Contact contact:listContacts){
                    //在这处理传过来的对象数据
                }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值