我創建了一個自定義ListView
和在java中填充ListView
與SimpleAdapter
。這裏是我的代碼:android listview簡單適配器,項目重複
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
歌曲和歌手分別放在一個HashMap
然後把HashMap
一個叫itemList
ArrayList
。之後,我在參數中設置了默認列表項ID的適配器。
我面臨的問題是,當我運行應用程序時,列表視圖只反覆顯示字符串數組的最後一項和子項。這是供參考的圖片。 My ListView
我想知道爲什麼會發生這種情況。我試圖把itemList.add(itemMap);
放在for()
的循環之外,但它仍然不起作用。幫助將真正讚賞與一個適當的解釋,因爲我有點新的這一點。謝謝!
您一次又一次向'HashMap'添加相同的密鑰。 –
呃一些細節會有所幫助。 – SynerFlow