在android中创建包含对象数组的Parcelable

来源:互联网 发布:中世纪2全面战争mac版 编辑:程序博客网 时间:2024/06/01 07:35
public class Bill implements Parcelable{// 订单号public int orderid;// 原系统idpublic int oldid;// 订单地址public String address;// 订单备注public String ext;// 订单电话public String mobile;// 订单用户姓名public String name;// 已支付金额public double payed;// 订单时间public String date;// 订单总价public double total;// 所需付款public double pay;// 店铺名称public String shopname;// 店铺电话public String shopphone;// 订单状态,0待确定,1已确定public int state;// 接受此订单的员工public int staff;//是否送达,0未送达,1送达public int type;// 货物public Goods goods[];public Bill() {// TODO Auto-generated constructor stub} protected Bill(Parcel in) {        orderid = in.readInt();        oldid = in.readInt();        address = in.readString();        ext = in.readString();        mobile = in.readString();        name = in.readString();        payed = in.readDouble();        date = in.readString();        total = in.readDouble();        pay = in.readDouble();        shopname = in.readString();        shopphone = in.readString();        state = in.readInt();        staff = in.readInt();        type = in.readInt();                Parcelable[] parcelables = in.readParcelableArray(Goods.class.getClassLoader());        if (parcelables != null) {goods = Arrays.copyOf(parcelables, parcelables.length, Goods[].class);}    }    @Override    public int describeContents() {        return 0;    }    @Override    public void writeToParcel(Parcel dest, int flags) {        dest.writeInt(orderid);        dest.writeInt(oldid);        dest.writeString(address);        dest.writeString(ext);        dest.writeString(mobile);        dest.writeString(name);        dest.writeDouble(payed);        dest.writeString(date);        dest.writeDouble(total);        dest.writeDouble(pay);        dest.writeString(shopname);        dest.writeString(shopphone);        dest.writeInt(state);        dest.writeInt(staff);        dest.writeInt(type);        dest.writeParcelableArray(goods, flags);    }    @SuppressWarnings("unused")    public static final Parcelable.Creator<Bill> CREATOR = new Parcelable.Creator<Bill>() {        @Override        public Bill createFromParcel(Parcel in) {            return new Bill(in);        }        @Override        public Bill[] newArray(int size) {            return new Bill[size];        }    };}

Goods对象实现了Parcelable接口

0 0