Android: ¿Cómo implementar Parcelable a mis objetos?
Tengo esta clase ConstantData que contiene mis índices JSON, necesito pasarlos entre actividades con extras. Pero antes de eso, tengo que implementar Parcelable a los objetos de esta clase primero.
Mi pregunta es, ¿cómo debo declarar el objeto dentro de mi clase aquí y poner cada objeto dentro de una variable?
- Java ParseException al intentar la anotación String to Date
- Actividad de referencia de retención de Singleton fugas de memoria?
- Evitar las llamadas de método indirecto y redundante
- Despertar un hilo de dormir - interrupción () versus "dividir" el sueño en varios sueños
- Reutilización de tareas asíncronas de Android
Soy un novato y estoy totalmente desorientado en este momento. Gracias. No dude en modificar mi código a continuación.
ConstantData.java
public class ConstantData{ public static String project_title = "project title"; public static String organization_title = "organization title"; public static String keyword = "keyword"; public static String short_code = "short code"; public static String project_description = "description"; public static String smallImageUrl = "smallImageUrl"; public static String bigImageUrl = "bigImageUrl"; public static String price= "price"; public static String country= "country"; public static ArrayList<Project> projectsList = new ArrayList<Project>(); public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeString(project_title); out.writeString(organization_title); out.writeString(keyword); out.writeString(short_code); out.writeString(project_description); out.writeString(smallImageUrl); out.writeString(bigImageUrl); out.writeString(price); out.writeString(country); } public static final Parcelable.Creator<ConstantData> CREATOR = new Parcelable.Creator<ConstantData>() { public ConstantData createFromParcel(Parcel in) { return new ConstantData(in); } public ConstantData[] newArray(int size) { return new ConstantData[size]; } }; private ConstantData(Parcel in) { project_title = in.readString(); organization_title = in.readString(); keyword = in.readString(); short_code = in.readString(); project_description = in.readString(); smallImageUrl = in.readString(); bigImageUrl = in.readString(); price = in.readString(); country = in.readString(); } }
En caso de que mi pregunta no es lo suficientemente clara, puede buscar esta pregunta: ¿Cómo enviar un objeto de una actividad de Android a otro utilizando Intents?
Allí escribió myParcelableObject
, simplemente no sé cómo hacer el objeto parcelable.
EDIT Proyecto.java
public class Project { public String project_title; public String organization_title; public String keyword; public String short_code; public String project_description; public String smallImageUrl; public String bigImageUrl; public String price; public String country; }
- El dedo de desplazamiento rápido desaparece mientras se desplaza AlphabetIndexer
- Cómo alinear a la derecha PreferencesActivity en android?
- ¿Cómo uso tabHost para Android
- Android: hace que la actividad A espere a que la actividad B termine y devuelva algunos valores
- Cómo agregar una notificación de inserción en mi propia aplicación de Android
- Los elementos de RecyclerView cambian de tamaño después de la actualización
- Prueba de Android fuera del espacio de almacenamiento
- Agregar sombra al ShapeDrawable mediante programación
Es necesario implementar la interfaz Parcelable
public class ConstantData implements Parcelable { public void writeToParcel(Parcel out, int flags) { out.writeString(project_title); .... out.writeString(country); out.writeList(projectsList); // <<-- } private ConstantData(Parcel in) { project_title = in.readString(); .... country = in.readString(); projectsList = in.readList();
Creo que para la escritura de la lista de projectsList
para trabajar, la clase Project
también necesita implementar Parcelable
.
Vea por ejemplo esta clase para un ejemplo.
- La transición de entrada en un fragmento con un elemento compartido se dirige al elemento compartido
- Servicio de reconocimiento continuo de voz de Android