2013-03-08 54 views
0
private void dataCollection() { 
    ArrayList<BreachHistoryData> responselist = SessionClass.getResponseList(); 

    listView = (ListView) findViewById(R.id.breachHistoryLstView); 
    View header = (View) getLayoutInflater().inflate(R.layout.custom_breach_history_header, null); 
    listView.addHeaderView(header); 

    for (BreachHistoryData breachHistoryData : responselist) { 
     messageView= new MessageView[] { new MessageView(breachHistoryData.getDate(), breachHistoryData.getTime(),breachHistoryData.getBreachNo(),breachHistoryData.getFee(), null) }; 

    } 
    CustomAdapter adapter = new CustomAdapter(this,R.layout.custom_breach_history_items, messageView); 
    listView.setAdapter(adapter); 

在上面的代碼中,我在responselist中有大約100個值。但是,當我嘗試 將這些值添加到我的列表視圖中時,它總是添加responselist的最後一個值(ArraList)。它的工作很好,當我打印的價值。但是將值添加到列表視圖中只有一些問題。使用Arraylist自定義列表視圖的問題

在此先感謝。

+0

請顯示您的適配器的代碼 – Neil 2013-03-08 10:27:06

+0

您面臨的問題 – 2013-03-08 10:29:58

+0

我只獲取數組列表的最後一個值。在打印數組列表的情況下,它會打印所有的值。問題是隻有當我將列表視圖添加到列表視圖。 – Arulkannan 2013-03-08 12:33:47

回答

0

那是因爲你只有一個messageView,並且它正在被arrayList中的每個元素重用。這意味着當for循環結束時只有最後一個項目會在其中,這就是您的適配器只顯示最後一個項目的原因。您需要使用messageView數組,或者在循環再次執行之前將每個消息視圖添加到適配器。

+0

我將messageView添加到循環中。然後我也得到相同的結果..我該如何解決這個問題。幫我解決這個問題..謝謝 – Arulkannan 2013-03-08 13:01:17

+0

但每次循環執行時都會寫'messageView'。意思是覆蓋它的最後一件事是arrayList – chefburns 2013-03-08 15:22:53

+0

ya謝謝你現在工作正常。 – Arulkannan 2013-03-09 13:01:21