使用Arraylist自定义列表视图时出现问题

时间:2013-03-08 10:21:49

标签: android arraylist android-listview

    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);

在上面的代码中,我在响应列表中有大约100个值。但是,当我尝试  要在我的列表视图中添加这些值,它总是添加响应列表的最后一个值(ArraList)。当我打印值时它工作正常。但是将值添加到列表视图中只会出现一些问题。

先谢谢。

1 个答案:

答案 0 :(得分:0)

这是因为你只有一个messageView,它正在重新用于你的arrayList中的每个元素。这意味着当for循环结束时,只有最后一项将在其中,这就是你的适配器只显示最后一项的原因。你需要一个messageView数组,或者在循环再次执行之前将每个消息视图添加到适配器。