2012-02-17 14 views
8

En mi aplicación de Android tengo una actividad que contiene un objeto Parcelable (implementa Parcelable).¿Cómo escribir un mapa en un paquete?

Ese objeto contiene un mapa.

Cuando trato de hacer lo siguiente en el método writeToParcel():

parcel.writeMap(myMap); 

me sale el siguiente comentario de la API:

Utilice writeBundle (Bundle) en su lugar. Aplana un mapa en el paquete en la posición de datos actual(), creciendo DataCapacity() si es necesario. Las claves de mapa deben ser objetos String. Los valores de Mapa se escriben usando writeValue (Object) y deben seguir la especificación allí.

¿Cómo se supone que debo hacerlo? ¿Cómo se supone que debo usar el writeBundle(myMap) aquí?

+0

Puede obtener ayuda de [aquí] (http://stackoverflow.com/questions/8254654/how-convert-write-java-util-map-into-parcel-in-a-smart-way). –

+0

http://android-orchestration.googlecode.com/svn-history/r162/trunk/Orchestration/src/orchestration/android/parcelable/ParcelableAndroidTaskDTO.java –

+0

Gracias a ambos, por lo que no hay una forma sencilla de escribir en mapa. Parece que necesito insertar las entradas de mapa reales una a una. – Chaiavi

Respuesta

5

Bundle es solo un mapa. Itere a través de su mapa, coloque cada asignación en un objeto Bundle recién creado y llame a writeBundle sobre él. Puede que no sea la mejor solución, sino una solución viable.