【问题标题】:use of Parcelable interface..?使用 Parcelable 接口..?
【发布时间】:2014-03-17 21:14:30
【问题描述】:

解释 Parcelable.creator 的含义是什么?

 public static final Parcelable.Creator<MyParcelable> CREATOR
         = new Parcelable.Creator<MyParcelable>() {
     public MyParcelable createFromParcel(Parcel in) {
         return new MyParcelable(in);
     }

     public MyParcelable[] newArray(int size) {
         return new MyParcelable[size];
     }
 };

【问题讨论】:

  • 总是先用谷歌搜索一下。

标签: android


【解决方案1】:

Parcelable 对象允许您对活动或片段停止/启动进行序列化和反序列化,它比 Java 可序列化更快

静态 CREATOR 类通过 createFromParcel 方法从 Parcel 创建您的对象,该方法接受一个 parcel 并将其传递给您的类中的构造函数,该构造函数执行 grunt 工作。

newArray 方法允许对对象数组进行分组。 Answer

这是一个很好的例子Link

【讨论】:

    【解决方案2】:

    Parcelable.CreatorParcel 对象创建MyParcelable 的实例。例如,典型的 Parcelable 应该如下所示:

     public class MyParcelable implements Parcelable {
         private int mData;
    
         public int describeContents() {
             return 0;
         }
    
         public void writeToParcel(Parcel out, int flags) {
             out.writeInt(mData);
         }
    
         public static final Parcelable.Creator<MyParcelable> CREATOR
                 = new Parcelable.Creator<MyParcelable>() {
             public MyParcelable createFromParcel(Parcel in) {
                 return new MyParcelable(in);
             }
    
             public MyParcelable[] newArray(int size) {
                 return new MyParcelable[size];
             }
         };
    
         private MyParcelable(Parcel in) {
             mData = in.readInt();
         }
     }
    

    有关更多信息,您应该查看官方文档:

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 2011-06-14
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 2013-06-17
      相关资源
      最近更新 更多