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.readSerializablemais 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