2 安卓 Parcelable.

public interface Parcelable 
{
    //内容描述接口,基本不用管
    public int describeContents();
    //写入接口函数,打包
    public void writeToParcel(Parcel dest, int flags);
    //读取接口,目的是要从Parcel中构造一个实现了Parcelable的类的实例处理。因为实现类在这里还是不可知的,所以需要用到模板的方式,继承类名通过模板参数传入
    //为了能够实现模板参数的传入,这里定义Creator嵌入接口,内含两个接口函数分别返回单个和多个继承类实例
    public interface Creator<T> 
    {
           public T createFromParcel(Parcel source);
           public T[] newArray(int size);
    }
}

 安卓中特有的  序列化 接口,比传统java Serializable效率高,内存少。
步骤

1)implements Parcelable

2)重写writeToParcel方法,将你的对象序列化为一个Parcel对象,即:将类的数据写入外部提供的Parcel中,打包需要传递的数据到Parcel容器保存,以便从 Parcel容器获取数据

3)重写describeContents方法,内容接口描述,默认返回0就可以

4)实例化静态内部对象CREATOR实现接口Parcelable.Creator 

public static final Parcelable.Creator<T> CREATOR

 public class MyParcelable implements Parcelable 
    {
         public int getmData() {
        return mData;
    }

    public String getmNummber() {
        return mNummber;
    }


        private int mData;
         public  String mNummber;

         public MyParcelable(int i ,String  m)
         {
             mData=i;
             mNummber=m;
         }
         
         @Override
         public int describeContents() {
         // TODO Auto-generated method stub
         return 0;
         }

         
         @Override
        public void writeToParcel(Parcel dest, int flags) {
            // TODO Auto-generated method stub
             dest.writeInt(mData);
             dest.writeString(mNummber) ;
        }


         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();
             mNummber = in.readString();
         }
     }
转载  :http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

 


 


 

posted on 2015-05-14 16:42  Top@Gragon  阅读(154)  评论(0编辑  收藏  举报

导航