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];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM