为了账号安全,请及时绑定邮箱和手机立即绑定

可打包自定义对象的问题 - Android

可打包自定义对象的问题 - Android

潇潇雨雨 2021-06-09 09:09:10
我正在尝试将自定义对象从一个活动传递到另一个活动。我发现我们可以使用 bundle 将数据传递到 Intent 中,并且我们需要在我们的类中实现一个 Parcelable 接口。在下面的代码中,我删除了无用的东西。public class TravelCard implements Parcelable {public static final Creator<TravelCard> CREATOR = new Creator<TravelCard>() {    @Override    public TravelCard createFromParcel(Parcel in) {        return new TravelCard(in);    }    @Override    public TravelCard[] newArray(int size) {        return new TravelCard[size];    }};private String travelTitle, travelCountry, dateRange, numOfPerson;private List<TravelDay> days;protected TravelCard(Parcel in) {    travelTitle = in.readString();    travelCountry = in.readString();    dateRange = in.readString();    numOfPerson = in.readString();    in.readTypedList(days, TravelDay.CREATOR);}@Overridepublic int describeContents() {    return 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {    dest.writeString(this.travelTitle);    dest.writeString(this.travelCountry);    dest.writeString(this.dateRange);    dest.writeString(this.numOfPerson);    dest.writeTypedList(this.days);}在这个类中,我有另一个自定义对象的列表:public class TravelDay implements Parcelable {public static final Creator<TravelDay> CREATOR = new Creator<TravelDay>() {    @Override    public TravelDay createFromParcel(Parcel in) {        return new TravelDay(in);    }    @Override    public TravelDay[] newArray(int size) {        return new TravelDay[size];    }};public int current_day;private String title, note, dateOfToday;protected TravelDay(Parcel in) {    title = in.readString();    note = in.readString();    dateOfToday = in.readString();    current_day = in.readInt();}@Overridepublic int describeContents() {    return 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {    dest.writeString(title);    dest.writeString(note);    dest.writeString(dateOfToday);    dest.writeInt(current_day);}我认为直到这里一切都应该没问题。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信