2012-05-19 7 views
1

Привет, мой код показывает только последний элемент ArrayList! Heres мой код:Android Listview отображает последний элемент в 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); 

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

ответ

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); 
    } 
+1

+1 приятный catch ... –

+0

Thankyou soo много !! это сработало!! –

+1

Удивительный! Это работало как прелесть. Я отлаживал это почти целый день .. Спасибо. @Lalit Poptani. – buggydroid