我正在嘗試將自定義對象從一個活動傳遞到另一個活動。我發現我們可以使用 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);}我認為直到這里一切都應該沒問題。
添加回答
舉報
0/150
提交
取消