Parcelable相较于Serializable的效率更高
public class ChargeMode implements Parcelable{
public String name;
public int playway;
public String price;
public String validTime;
public ChargeMode(){
}
private ChargeMode(Parcel in){
name = in.readString();
playway = in.readInt();
price = in.readString();
validTime = in.readString();
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(playway);
dest.writeString(price);
dest.writeString(validTime);
}
public static final Creator<ChargeMode> CREATOR = new Creator<ChargeMode>() {
@Override
public ChargeMode[] newArray(int size) {
return new ChargeMode[size];
}
@Override
public ChargeMode createFromParcel(Parcel source) {
return new ChargeMode(source);
}
};
}
存入序列化的数组
Intent intent = new Intent(MovieSynopsis.this, PaymentActivity.class);
intent.putExtra(Constant.CHARGE_MODE, chargeModes);//存入ChargeMode[]
startActivity(intent);
取出ChargeMode[]的值时,必须先是Parcelable[],之后再转换成ChargeMode[]
Parcelable[] mChargeModes=intent.getParcelableArrayExtra(Constant.CHARGE_MODE);
ChargeMode chargeModes=(ChargeMode) mChargeModes[0];