Mam interfejs IA i klasę B i C że je realizować. Zarówno narzędzie B, jak i C Parcelable
.Android Parcelable - Pisz i czytaj ArrayList < IA > kiedy IA jest interfejsem
Wtedy mam Najtrudniejsze:
Class D ma ArrayList<IA>
. Potrzebuję tego również wstawić obie klasy B i C w arraylist
. Mają one tę samą strukturę, ale relacja "IS-A" nie ma zastosowania.
Muszę przekazać D z jednego działania do drugiego jako paczki.
Próbowałem napisać (ArrayList<IA>) in.readSerializable
, ale mam IOException
. Wiem, że jeśli IA nie był interfejsem, problem był prosty, ale nie mogę znaleźć łatwego rozwiązania.
Wszelkie pomysły?
@SuppressWarnings("unchecked")
public D (Parcel in) {
list = new ArrayList<IA>();
(...)
list = (ArrayList<IA>) in.readSerializable
}
@SuppressWarnings("rawtypes")
public static final Parcelable.Creator CREATOR =
new Parcelable.Creator() {
public D createFromParcel(Parcel in) {
return new D(in);
}
public D[] newArray(int size) {
return new D[size];
}
};
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
(...)
dest.writeList(list);
}
IA powinien przedłużyć Parcelable – njzk2
i D użyć in.readArrayList (list, Creator)? ale który twórca? –
Czy możesz opublikować dowolny kod za pomocą metody klasy D., aby rzucić okiem. –