序列化方式
- implements Serializable
- implements Parcelable
Serializable 模板
一般继承 Serializable 就行了
public class SerializableBean implements Serializable {
}
Parcelable 模板
ParcelableBean
public class ParcelableBean implements Parcelable {
private int id;
private String answer;
public ParcelableChlidBean parcelableObjiect;
public ParcelableChlidBean[] parcelableArray;
public List<ParcelableChlidBean> parcelableList;
public String[] stringArray;
protected ParcelableBean() {
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(id);
dest.writeString(answer);
dest.writeParcelable(parcelableObjiect, flags);
dest.writeParcelableArray(parcelableArray, flags);
dest.writeTypedList(parcelableList);
dest.writeStringArray(stringArray);
}
protected ParcelableBean(Parcel in) {
id = in.readInt();
answer = in.readString();
parcelableObjiect = in.readParcelable(ParcelableChlidBean.class.getClassLoader());
Parcelable[] parcelables = in.readParcelableArray(ParcelableChlidBean.class.getClassLoader());
if (parcelables != null) {
parcelableArray = Arrays.copyOf(parcelables,
parcelables.length, ParcelableChlidBean[].class);
}
// 注: readTypedList(List<PhotoImageItem> list,
// Creator<PhotoImageItem> c),这里 list不能为空,
// 否则回报 NullPointException
if (parcelableList == null) {
parcelableList = new ArrayList<ParcelableChlidBean>();
}
in.readTypedList(parcelableList, ParcelableChlidBean.CREATOR);
// 注:这里为什么是parcel.createStringArray()
// 而不是 parcel.readStringArray(selectedImage)?
stringArray = in.createStringArray();
}
public static final Creator<ParcelableBean> CREATOR = new Creator<ParcelableBean>() {
@Override
public ParcelableBean createFromParcel(Parcel in) {
return new ParcelableBean(in);
}
@Override
public ParcelableBean[] newArray(int size) {
return new ParcelableBean[size];
}
};
@Override
public int describeContents() {
return 0;
}
}
ParcelableChlidBean
import android.os.Parcel;
import android.os.Parcelable;
public class ParcelableChlidBean implements Parcelable {
private long id;
private int age;
private String name;
private byte hasChlid;//不支持boolean
private float height;
private double money;
private int[] houseNo;
protected ParcelableChlidBean() {
}
protected ParcelableChlidBean(Parcel in) {
this.id = in.readLong();
this.age = in.readInt();
this.name = in.readString();
this.hasChlid = in.readByte();
this.height = in.readFloat();
this.money = in.readDouble();
in.readIntArray(this.houseNo);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeLong(id);
dest.writeInt(age);
dest.writeString(name);
dest.writeByte(hasChlid);
dest.writeFloat(height);
dest.writeDouble(money);
dest.writeIntArray(houseNo);
}
public static final Creator<ParcelableChlidBean> CREATOR = new Creator<ParcelableChlidBean>() {
@Override
public ParcelableChlidBean createFromParcel(Parcel in) {
return new ParcelableChlidBean(in);
}
@Override
public ParcelableChlidBean[] newArray(int size) {
return new ParcelableChlidBean[size];
}
};
@Override
public int describeContents() {
return 0;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isHasChlid() {
return hasChlid == 1;
}
public void setHasChlid(boolean hasChlid) {
if (hasChlid) {
this.hasChlid = 1;
} else {
this.hasChlid = 0;
}
}
public float getHeight() {
return height;
}
public void setHeight(float height) {
this.height = height;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public int[] getHouseNo() {
return houseNo;
}
public void setHouseNo(int[] houseNo) {
this.houseNo = houseNo;
}
}