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];
原文地址:https://www.cnblogs.com/lipeineng/p/5623901.html