2012-05-25 10 views
6

estoy usando el siguiente código para leer un mapa de tipo HashMap<String, String> a partir de una parcela:¿Qué cargador de clases usar con Parcel.readHashMap?

in.readHashMap(HashMap.class.getClassLoader()); 

Esto parece funcionar bien, pero me da una advertencia:

Type safety: The expression of type HashMap needs unchecked conversion to conform to Map<String,String> 

¿Hay una forma "correcta" de hacer esto, ¿usar un cargador de clases diferente? ¿O debería ir con @SuppressWarnings("unchecked")?

Respuesta

6

La documentación para desarrolladores de Android para Parcel.readHashMap() dice:

Utilice readBundle(ClassLoader) lugar (cuyos datos deben tener sido escrito con writeBundle(Bundle)

Así que tal vez debería estar usando readBundle() y writeBundle() lugar..

+12

Gracias por la sugerencia! Aunque estrictamente hablando no es la respuesta a la pregunta anterior, se soluciona ed mi problema Aquí es lo que hice: Al escribir en el paquete: El paquete ' Bundle = new Bundle();' \t \t \t 'bundle.putSerializable ("mapa", myMap);' ' dest.writeBundle (paquete); ' al leer de nuevo desde la parcela: ' haz Bundle = in.readBundle(); '' @SuppressWarnings ("sin control") '' HashMap myMap = (HashMap ) bundle.getSerializable ("map"); ' this.myMap = myMap;' – hdort

+0

OK, quería formatearlo mejor, pero simplemente no funciona para mí. ¡Lo siento! – hdort

+0

use readBundle (classLoader) si su hashmap tiene objetos que se pueden parcelar. –

Cuestiones relacionadas