Most visited

Recently visited

Added in API level 1

Parcelable

public interface Parcelable

android.os.Parcelable
Known Indirect Subclasses


其实例可以写入并从Parcel恢复的类的接口。 实现Parcelable接口的类还必须具有一个名为CREATOR的非null静态字段,该字段实现了Parcelable.Creator接口。

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();
     }
 }

Summary

Nested classes

interface Parcelable.ClassLoaderCreator<T>

专业化的Parcelable.Creator ,允许您接收正在创建对象的ClassLoader。

interface Parcelable.Creator<T>

必须实现的接口以及作为公共CREATOR字段提供的接口,该字段可从Parcel中生成Parcelable类的实例。

Constants

int CONTENTS_FILE_DESCRIPTOR

describeContents()使用的描述符位:表示 describeContents()对象的展平表示包含文件描述符。

int PARCELABLE_WRITE_RETURN_VALUE

用于 writeToParcel(Parcel, int)标志:正在写入的对象是返回值,即“ Parcelable someFunction() ”,“ void someFunction(out Parcelable) ”或“ void someFunction(inout Parcelable) ”等函数的结果。

Public methods

abstract int describeContents()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。

abstract void writeToParcel(Parcel dest, int flags)

将此对象平铺到一个包裹中。

Constants

CONTENTS_FILE_DESCRIPTOR

Added in API level 1
int CONTENTS_FILE_DESCRIPTOR

describeContents()使用的描述符位:表示 describeContents()对象的展平表示包含文件描述符。

也可以看看:

常数值:1(0x00000001)

PARCELABLE_WRITE_RETURN_VALUE

Added in API level 1
int PARCELABLE_WRITE_RETURN_VALUE

用于writeToParcel(Parcel, int)标志:正在写入的对象是返回值,即“ Parcelable someFunction() ”,“ void someFunction(out Parcelable) ”或“ void someFunction(inout Parcelable) ”等函数的结果。 有些实现可能希望在此时释放资源。

常数值:1(0x00000001)

Public methods

describeContents

Added in API level 1
int describeContents ()

描述此Parcelable实例的封送表示中包含的特殊对象的种类。 例如,如果对象将在writeToParcel(Parcel, int)的输出中包含writeToParcel(Parcel, int) ,则此方法的返回值必须包含CONTENTS_FILE_DESCRIPTOR位。

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance.

也可以看看:

writeToParcel

Added in API level 1
void writeToParcel (Parcel dest, 
                int flags)

将此对象平铺到一个包裹中。

Parameters
dest Parcel: The Parcel in which the object should be written.
flags int: Additional flags about how the object should be written. May be 0 or PARCELABLE_WRITE_RETURN_VALUE.

Hooray!