Android Parcelable - Écrire et lire ArrayList & lt; IA & gt; quand IA est une interface
J'ai une interface IA et de la classe B et C qui les mettent en œuvre.
À la fois B et C en œuvre Parcelable
.
Puis j'ai la partie la plus délicate:
Classe D a un ArrayList< IA >
. J'ai besoin de cette trop insérer les deux classes B et C dans le arraylist
. Ils partagent la même structure, mais le "EST-UN" relation ne s'appliquent pas.
J'ai besoin de passer D une activité à l'autre, comme un Colis.
J'ai essayé d'écrire (ArrayList<IA>) in.readSerializable
mais j'ai eu un IOException
. Je sais que si l'IA n'était pas une interface, le problème a été facile, mais je n'arrive pas à trouver une solution simple pour cela.
Des idées?
@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);
}
source d'informationauteur Pedro Bernardo
Vous devez vous connecter pour publier un commentaire.
Je vous conseille de l'installer "Android Parcelable générateur de code" plugin. Après cela, vous pouvez générer
writeToParcel
fonction, constructeur qui se lit de la parcelle et le créateur de la classe seulement avec cliquantAlt+Insert
boutons.