Android Listview отображает последний элемент в ArrayList

1

Привет, мой код показывает только последний элемент ArrayList! Вот мой код:

    ListView list = (ListView) findViewById(R.id.t1player_statsList);

    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();

    HashMap<String, String> map = new HashMap<String, String>();

    for(Player player : team1.getPlayers())
        map.put("player", player.getName()); 
        map.put("score", "0");
        mylist.add(map);


    SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.mylistrow,
                new String[] {"player", "score"}, new int[] {R.id.NameCell, R.id.ScoreCell});
    list.setAdapter(mSchedule);

я чувствую, что это что-то связано с моей петлей. кто-то может помочь! заранее спасибо!

Теги:
arraylist
android-listview

1 ответ

6
Лучший ответ

Вы создаете только один экземпляр Hashmap, который переписывает все значения снова и снова, и последнее значение остается. Итак, создайте новый экземпляр внутри цикла.

    HashMap<String, String> map;

    for(Player player : team1.getPlayers()){
        map = new HashMap<String, String>();
        map.put("player", player.getName()); 
        map.put("score", "0");
        mylist.add(map);
     }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню