【发布时间】:2017-07-31 16:56:12
【问题描述】:
我试图弄清楚为什么我的列表视图中的项目以错误的顺序显示。我认为这与迭代器有关,但我不确定。
这是我活动中的代码:
//String Capitole
String Articolul1 = getResources().getString(R.string.dispozitiiGeneraleArt_1);
String Articolul2 = getResources().getString(R.string.dispozitiiGeneraleArt_2);
String Articolul3 = getResources().getString(R.string.dispozitiiGeneraleArt_3);
//ListView Set
ListView listDispGen = (ListView) findViewById(R.id.dispozitiigeneralelist);
HashMap<String, String> articolExplicatii = new HashMap<>();
articolExplicatii.put(" Art.1", Articolul1);
articolExplicatii.put(" Art.2", Articolul2);
articolExplicatii.put(" Art.3", Articolul3);
List<HashMap<String, String>> listItems = new ArrayList<>();
SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.dispgeneralelist,
new String[]{"First Line", "Second Line"},
new int[]{R.id.main_item, R.id.sub_item});
Iterator it = articolExplicatii.entrySet().iterator();
while(it.hasNext()) {
HashMap<String, String> resultsMap = new HashMap<>();
Map.Entry pair = (Map.Entry)it.next();
resultsMap.put("First Line", pair.getKey().toString());
resultsMap.put("Second Line", pair.getValue().toString());
listItems.add(resultsMap);
}
listDispGen.setAdapter(adapter);
主要问题是,当我运行应用程序时,项目未按正确顺序显示,例如: Art.1、Art.2....Art.9,但它们像 Art.3、Art.1、Art.3 等一样随机显示。
【问题讨论】:
-
HashMap不维持秩序所以使用LinkedHashMap -
显然
List<HashMap<String, String>>没问题...但是你需要对其进行排序 -
我该怎么做?我花了很多时间搜索互联网,但找不到任何答案!
-
stackoverflow.com/questions/2784514/… 但显然不是通过自定义属性,而是通过相同键的值
-
感谢您的回复。