2010-11-15 20 views
7

He leído publicaciones sobre pasar matrices desde y hacia actividades, pero no estoy seguro de cómo lo haría para mi caso específico.¿Cómo pasas una matriz de objetos a una actividad?

Tengo una serie de objetos llamados DaysWeather (una serie DaysWeather []) donde los objetos tienen varios atributos de Cadena así como un atributo de mapa de bits. Leí en alguna parte que tienes que hacer que sea serializable o parcelable o algo así, pero parece desordenado a primera vista.

¿Alguien podría llevarme en la dirección correcta?

¿Hay una manera simple de hacer esto?

Respuesta

5

Sus objetos necesitan implementar el Parcelable interface.

Cuando se hace esto, se puede crear la matriz parcelable y pasarlo a la actividad:

// We assume we have an array: DaysWeather[] input; 
Parcelable[] output = new Parcelable[input.length]; 
for (int i=input.length-1; i>=0; --i) { 
    output[i] = input[i]; 
} 

Intent i = new Intent(...); 
i.putExtra("myArray", output); 

También tenga en cuenta que cuando se implementa la interfaz parcelable, no serializar objetos pesados ​​completos. Por ejemplo, para su mapa de bits, serialice la ID del recurso solo y al inflar, recree el mapa de bits desde la ID del recurso.

+0

Pero no hagas esto. Use otros métodos para transferir objetos como un servicio. – Falmarri

+0

Otra forma de pasar objetos entre actividades es usar proveedores de contenido, receptores de difusión y filtros de intención. (http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/) –

+1

No sé a qué se refiere cuando dice "no serialice objetos pesados ​​completos". " Mis bitmaps no tienen ID de recursos, ya que se descargan de la web directamente en sus respectivos objetos de contenedor. Además, ¿puedes dirigirme a un tutorial/ejemplo adecuado de implementación de Parcelable? Mis objetos (DaysWeather) son simplemente estructuras de datos que contienen 5 cadenas y un mapa de bits. No estoy seguro de cómo implementar el método writeToParcel() con estos datos. – joepetrakovich

Cuestiones relacionadas