你的位置:首页 > 操作系统

[操作系统]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];