Я должен доставить значение объекта в другое действие, поэтому я нашел способ использовать Parcelable Object.но это проблема
внешний ParcelableOjbect (я назову это "1") имеет внутреннюю переменную ParcelableOjbect (я назову это "2").так что мне нужно сделать, это добавить innerParcelableObject в externalParcelableObject.
«2», который я добавлю, уже настроен на класс Parcelable
, но в появившейся ошибке говорится об этом
writeParcelable(Parcelable, int) in Parcel cannot be applied
to (State)
Это (1)
ublic class Progress implements Parcelable {
String time;
String location;
State status; // <<<----- this is (2)
String description;
public Progress(){}
public Progress(String time, String location, State status, String description) {
this.time = time;
this.location = location;
this.status = status;
this.description = description;
}
protected Progress(Parcel in){
in.writeString(time);
in.writeString(location);
in.writeParcelable(status); // <<-- the error occured here
in.writeString(description);
}
public static final Creator<Progress> CREATOR = new Creator<Progress>() {
@Override
public Progress createFromParcel(Parcel in) {
return new Progress(in);
}
@Override
public Progress[] newArray(int size) {
return new Progress[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
// ... getters and setters
}
Это (2)
public class State implements Parcelable {
String id;
String text;
public State(String id, String text) {
this.id = id;
this.text = text;
}
protected State(Parcel in) {
in.writeString(id);
in.writeString(text);
}
public static final Creator<State> CREATOR = new Creator<State>() {
@Override
public State createFromParcel(Parcel in) {
return new State(in);
}
@Override
public State[] newArray(int size) {
return new State[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
// ... getters and setters
}
Чего не хватает в этом?