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:
- Escribir una subclase de Parcelable a otra parcela
- Paso de arraylist de objetos entre actividades
- Transmisión de JSONObject a otra actividad
- ¿Cómo pasar el objeto Parcelable del niño a la actividad de los padres?
- Obtención de Unmarshalling código de tipo desconocido al volver a parcelar el mismo objeto
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); }
- Uso de Parcelable con referencias circulares
- Escribir enum con String a paquete
- Android Store un objeto parcelable en SQLite
- Android BadParcelableException sólo con apk firmado
- Cómo pasar una matriz de objetos de dirección a otra Acitvity
- Fragmentos de Android que conservan datos
- ¿Por qué algunas veces funciona guardar un Hashtable de objetos no Parcelable en onSaveInstanceState ()?
- No se puede poner más en una intención
@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); }