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 个值。但是当我尝试在我的列表视图中添加这些值时,它总是添加响应列表(ArraList)的最后一个值。当我打印值时它工作正常。但是将值添加到列表视图中只有一些问题。

提前致谢。

4

1 回答 1

0

那是因为您只有一个 messageView,并且它正在被您 arrayList 中的每个元素重用。这意味着当 for 循环完成时,只有最后一项将在其中,这就是为什么您的适配器只显示最后一项。您要么需要一个 messageView 数组,要么在循环再次执行之前将每个消息视图添加到适配器。

于 2013-03-08T10:29:50.123 回答