Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用
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];