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

  1. publicclassPersonimplementsParcelable{
  2. //成员变量
  3. privateintid;
  4. privateStringname;
  5. //1.必须实现Parcelable.Creator接口,否则在获取Person数据的时候,会报错,如下:
  6. //android.os.BadParcelableException:
  7. //ParcelableprotocolrequiresaParcelable.CreatorobjectcalledCREATORonclasscom.um.demo.Person
  8. //2.这个接口实现了从Percel容器读取Person数据,并返回Person对象给逻辑层使用
  9. //3.实现Parcelable.Creator接口对象名必须为CREATOR,不如同样会报错上面所提到的错;
  10. //4.在读取Parcel容器里的数据事,必须按成员变量声明的顺序读取数据,不然会出现获取数据出错
  11. //5.反序列化对象
  12. publicstaticfinalParcelable.Creator<Person>CREATOR=newCreator(){
  13. @Override
  14. publicPersoncreateFromParcel(Parcelsource){
  15. //TODOAuto-generatedmethodstub
  16. //必须按成员变量声明的顺序读取数据,不然会出现获取数据出错
  17. Personp=newPerson();
  18. p.setId(source.readInt());
  19. p.setName(source.readString());
  20. returnp;
  21. }
  22. @Override
  23. publicPerson[]newArray(intsize){
  24. //TODOAuto-generatedmethodstub
  25. returnnewPerson[size];
  26. }
  27. };
  28. publicintgetId(){
  29. returnid;
  30. }
  31. publicvoidsetId(intid){
  32. this.id=id;
  33. }
  34. publicStringgetName(){
  35. returnname;
  36. }
  37. publicvoidsetName(Stringname){
  38. this.name=name;
  39. }
  40. @Override
  41. publicintdescribeContents(){
  42. //TODOAuto-generatedmethodstub
  43. return0;
  44. }
  45. @Override
  46. publicvoidwriteToParcel(Parceldest,intflags){
  47. //TODOAuto-generatedmethodstub
  48. //1.必须按成员变量声明的顺序封装数据,不然会出现获取数据出错
  49. //2.序列化对象
  50. dest.writeInt(id);
  51. dest.writeString(name);
  52. }
  53. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值