sort recorrer example ejemplos colecciones android android-intent hashmap treemap

recorrer - putExtra treeMap returns HashMap no se puede convertir a TreeMap para Android



treemap en java ejemplos (3)

Necesito tu ayuda, no puedo entender lo que está pasando?

Estoy tratando de enviar un TreeMap entre 2 actividades, el código es algo como esto:

class One extends Activity{ public void send(){ Intent intent = new Intent(One.this, Two.class); TreeMap<String, String> map = new TreeMap<String, String>(); map.put("1","something"); intent.putExtra("map", map); startActivity(intent); finish(); } } class Two extends Activity{ public void get(){ (TreeMap<String, String>) getIntent().getExtras().get("map");//Here is the problem } }

Esto me devuelve que HashMap no se puede convertir a TreeMap. Qué


Como alternativa a las sugerencias de @Jave, si realmente necesita que la estructura de datos sea un TreeMap , simplemente use el constructor apropiado que tome otro mapa como fuente de datos. Entonces en el extremo receptor ( Two ) haga algo como:

public class Two extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TreeMap<String, String> map = new TreeMap<String, String>((Map<String, String>) getIntent().getExtras().get("map")); } }

Sin embargo, dependiendo de su proyecto, probablemente no tenga que preocuparse por la implementación exacta del Map . Entonces, en lugar de eso, puedes lanzar a la interfaz de Map :

public class Two extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Map<String, String> map = (Map<String, String>) getIntent().getExtras().get("map"); } }


En lugar de TreeMap el resultado directamente a un TreeMap , puede crear un nuevo TreeMap<String, String> y usar el método putAll() :

TreeMap<String, String> myMap = new TreeMap<String, String>; HashMap<String, String> receivedMap = getIntent().getExtras().get("map"); myMap.putAll(receivedMap);


Parece que se serializa en un HashMap y eso es lo que está obteniendo. Supongo que tendrás que conformarte con un HashMap. Alternativamente, puede crear su propia clase de ayuda e implementar Parcelable, luego serializar las claves / cadenas en orden.