Parcelable序列化的使用,关于intent.getParcelableArrayExtra的使用

时间:2021-04-07 13:36:46
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 ;
}
@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];

相关文章