Tengo un HashMap<String,String>
y hay un método estático que devuelve este mapa a Activity
.Cómo ordenar HashMap como agregado en Android con ArrayAdapter
método es el siguiente:
public static HashMap<String, String> getAll() {
HashMap<String, String> map = new HashMap<String,String>();
map.put("ab", "value1");
map.put("bc", "value2");
map.put("de", "value3");
return map;
}
Quiero usar ese mapa con una ruleta. Así que la actividad se ve así:
List list = new ArrayList<String>();
HashMap<String, String> map = Constants.getAll();
for (String key : map.keySet()) {
list.add(Constants.getAll().get(key).toString());
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinTest = (Spinner)findViewById(R.id.spinTest);
spinTest.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
urlDebug.setText(list.get(arg2).toString());
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
spinTest.setAdapter(adapter);
Cuando traté de ejecutar mi aplicación, no hubo ningún problema. Pero cuando hice clic en spinner, los artículos no se ordenaron, ya que agregué el método getAll(). Quiero decir, el orden tiene que ser ab - bc --de pero está ordenado al azar.
¿Qué no es cierto?
Ahora ordena como añado, gracias. –
O, simplemente use un TreeMap. Es lo que está ahí para que lo sepas. – Jens
¡Acabas de ahorrarme mis horas! –