我创建了一个自定义ListView
并在 java 中填充ListView
了一个SimpleAdapter
. 这是我的代码:
setContentView(R.layout.activity_my);
list = (ListView) findViewById(R.id.lvList);
itemList = new ArrayList<HashMap<String, String>>();
itemMap = new HashMap<String, String>();
for (int i = 0; i < songs.length; i++) {
itemMap.put("song", songs[i]);
itemMap.put("artist", artists[i]);
System.out.println(songs[i] + " " + artists[i]);
itemList.add(itemMap);
}
SimpleAdapter adapter = new SimpleAdapter(this, itemList,
android.R.layout.simple_list_item_2, new String[] {"song",
"artist"}, new int[] { android.R.id.text1,
android.R.id.text2 });
list.setAdapter(adapter);
现在我String Arrays
分别创建了两个 Song 和 Artist 并将它们放入 a 中HashMap
,然后放入HashMap
aArrayList
中itemList
。之后,我使用参数中的默认列表项 id 设置适配器。
我面临的问题是,当我运行应用程序时,列表视图重复显示字符串数组的最后一项和子项。这是供参考的图像。 我的列表视图
我想知道为什么会这样。我试着把循环放在itemList.add(itemMap);
外面,for()
但它仍然没有用。如果有适当的解释,我们将不胜感激,因为我对此有点陌生。谢谢你!