Parcelable protocol requires a Parcelable.Creator object called。。。。。

public class Person implements Parcelable{
     
     // 成员变量
     private int id;
     private String name;
     
     // 1.必须实现Parcelable.Creator接口,否则在获取Person数据的时候,会报错,如下:
     // android.os.BadParcelableException:
     // Parcelable protocol requires a Parcelable.Creator object called  CREATOR on class com.um.demo.Person
     // 2.这个接口实现了从Percel容器读取Person数据,并返回Person对象给逻辑层使用
     // 3.实现Parcelable.Creator接口对象名必须为CREATOR,不如同样会报错上面所提到的错;
     // 4.在读取Parcel容器里的数据事,必须按成员变量声明的顺序读取数据,不然会出现获取数据出错
     // 5.反序列化对象
     public static final Parcelable.Creator<Person> CREATOR = new Creator(){
 
         @Override
         public Person createFromParcel(Parcel source) {
             // TODO Auto-generated method stub
             // 必须按成员变量声明的顺序读取数据,不然会出现获取数据出错
             Person p = new Person();
             p.setId(source.readInt());
             p.setName(source.readString());
             return p;
         }
 
         @Override
         public Person[] newArray(int size) {
             // TODO Auto-generated method stub
             return new Person[size];
         }
     };
     
     public int getId() {
         return id;
     }
 
     public void setId(int id) {
         this.id = id;
     }
 
     public String getName() {
         return name;
     }
 
     public void setName(String name) {
         this.name = name;
     }
 
     @Override
     public int describeContents() {
         // TODO Auto-generated method stub
         return 0;
     }
 
     @Override
     public void writeToParcel(Parcel dest, int flags) {
         // TODO Auto-generated method stub
         // 1.必须按成员变量声明的顺序封装数据,不然会出现获取数据出错
         // 2.序列化对象
         dest.writeInt(id);
         dest.writeString(name);
     }
 }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值