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 阅读(160) 评论(0) 编辑 收藏 举报