我有一个HashMap< String,String>并且有一个静态方法将此映射返回给Activity.
方法如下所示:
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,但它是随机排序的.
什么不是真的?
解决方法
在hashmap中,不维护插入顺序,因此可以先访问最后插入的项目.如果要保持插入顺序,请改用linkedhashmap.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。