Android Parcelable – Escriba y lea ArrayList <IA> cuando IA es una interfaz
Tengo una interfaz IA y clase B y C que los implementan. Tanto B como C implementan Parcelable
también.
Entonces tengo la parte difícil:
- Fragmentos de Android que conservan datos
- Android Parcelable Implementación con ArrayList <Object>
- Cómo pasar ArrayList de objetos de una a otra actividad utilizando Intent en android?
- Objetos complementarios en las interfaces Kotlin
- Paso de arraylist de objetos entre actividades
La clase D tiene una ArrayList< IA >
. Necesito esto también insertar las clases B y C en el arraylist
. Comparten la misma estructura pero la relación "IS-A" no se aplica.
Necesito pasar de una actividad a otra como paquete.
He intentado escribir (ArrayList<IA>) in.readSerializable
pero tengo una IOException
. Sé que si IA no era una interfaz el problema era fácil, pero no puedo encontrar una solución fácil para esto.
¿Algunas ideas?
@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); }
- Enviar ArrayList <Object> de BroadCastReceiver a Actividad
- Cómo hacer una lista <enum> parcelable?
- Android: guarda datos parcelables en un archivo
- ¿Qué cargador de clases usar con Parcel.readHashMap?
- La API de reproductor de YouTube para Android lanza "BadParcelableException ClaseNotFoundException al desmarcar: asc" con la nueva versión de YouTube
- Parcelable donde / cuando se describeContents () usado?
- Transmisión de JSONObject a otra actividad
- ¿Cómo escribir Java.util.Map en el paquete de una manera inteligente?
@SuppressWarnings("unchecked") public D (Parcel in) { list = new ArrayList<IA>(); (...) //ERROR -> list = (ArrayList<IA>) in.readSerializable list = in.readArrayList(IA.class.getClassLoader()); } @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); }