您的位置:首页 > 移动开发 > Android开发

Android Parcel初识

2015-09-05 13:23 435 查看
先附上一个连接,这里讲的非常详细,感谢此文作者http://www.cnblogs.com/renqingping/archive/2012/10/25/Parcelable.html

用Parcelable序列化的对象例子如下,writeToParcel方法里的dest.writeXX顺序要与createFromParcel中parcel.readXX一致,类中一定要有public static final Parcelable.Creator<Phone> CREATOR,否则会抛异常 :

09-05 01:21:13.696: E/AndroidRuntime(1049): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test2/com.example.test2.ActivityA}: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.example.test2.bean.Phone

package com.example.test2.bean;

import android.os.Parcel;
import android.os.Parcelable;

public class Phone implements Parcelable {

public String model;
public float size;
public String manufacture;

public Phone(String manufacture, String model, float size) {
this.manufacture = manufacture;
this.model = model;
this.size = size;
}

public Phone(Parcel in) {
this.manufacture = in.readString();
this.model = in.readString();
this.size = in.readFloat();
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(manufacture);
dest.writeString(model);
dest.writeFloat(size);
}

public static final Parcelable.Creator<Phone> CREATOR = new Creator<Phone>() {

@Override
public Phone createFromParcel(Parcel source) {
return new Phone(source);
}

@Override
public Phone[] newArray(int size) {
return new Phone[size];
}
};

public String toString() {
return manufacture + ", " + model + ", " + size + "寸";
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: