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) の最後の値が追加されます。値を印刷すると正常に動作します。ただし、リストビューに値を追加すると、いくつかの問題が発生するだけです。

前もって感謝します。

4

1 に答える 1

0

これは、messageView が 1 つしかなく、それが arrayList のすべての要素に再利用されているためです。これは、 for ループが終了したときに最後の項目のみが含まれることを意味し、それがアダプターが最後の項目のみを表示する理由です。ループが再度実行される前に、messageView の配列が必要になるか、各メッセージ ビューをアダプタに追加する必要があります。

于 2013-03-08T10:29:50.123 に答える