piuttosto semplice scenario davvero, ma non sono riuscito a trovare tutto ciò che riguarda il Google quindi ecco qui:Parcelable Android riferimento a un'altra dipendenza circolare Parcelable
class ContainerClass implements Parcelable {
List<ItemClass> _items;
(...)
public void writeToParcel(Parcel p, int args) {
p.writeList(_items);
(...)
}
}
class ItemClass implements Parcelable {
ContainerClass _containerRef;
(...)
public void writeToParcel(Parcel p, int args) {
p.writeParcelable(_containerRef);
(...)
}
}
Questo inevitabilmente ciclo e overflow dello stack.
La mia domanda: come posso gestire una situazione in cui devo passare un oggetto dei tipi sopra riportati a una nuova attività.
(per CommonsWare) L'implementazione parcellare sembra non controllare ed evitare dipendenze circolari. Stacktrace con classnames sostituiti con nomi di cui sopra:
08-12 10:17:45.233 5590-5590/com.package E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.StackOverflowError
at com.package.ContainerClass.writeToParcel(ContainerClass.java:139)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at com.package.ItemClass.writeToParcel(ItemClass.java:182)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at android.os.Parcel.writeValue(Parcel.java:1173)
at android.os.Parcel.writeList(Parcel.java:622)
at com.package.ContainerClass.writeToParcel(ContainerClass.java:144)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at com.package.ItemClass.writeToParcel(ItemClass.java:182)
at android.os.Parcel.writeParcelable(Parcel.java:1254)
at android.os.Parcel.writeValue(Parcel.java:1173)
at android.os.Parcel.writeList(Parcel.java:622)
Ho finito per implementare il numero 2. – Skod