我有一個HashMap<String,String>
,並且有一個靜態方法將此映射返回到Activity
。如何使用ArrayAdapter對Android中添加的HashMap進行排序
方法是這樣的:
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;
}
我想使用地圖的好手。因此,活動如下所示:
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);
當我嘗試運行我的應用程序時,根本沒有問題。但是當我點擊微調框時,項目沒有按照我在getAll()方法上添加的順序進行排序。我的意思是,命令必須是ab - bc -de,但它是隨機排列的。
什麼是不正確的?
現在,我添加的訂單,謝謝。 – 2012-01-30 09:30:16
或者,只需使用TreeMap。這就是你知道的。 – Jens 2012-01-30 12:12:21
你剛剛救了我的小時! – 2015-01-19 04:36:05