0

xml レイアウト ファイルで定義されたカスタム リストビューがあります。onCreate配列アダプターを使用して、この ListView 内部メソッドに項目を追加できます。

ただし、別のコンテンツ ビューから項目を追加してから、ListView を使用してコンテンツ ビューに戻ると、すべての項目がなくなり、何も表示されません。電話した後も.notifyDataSetChanged();

ListView を含むコンテンツ ビューが現在表示されている場合にのみ、リストに追加できるようです。これはデフォルトの動作ですか?

試行された回避策の失敗

別の配列を使用して新しく追加された項目を保持し、ListView が再び表示されたときにそれらを追加しようとしました。そのためにオーバーライドonContentChanged()する必要がありましたが、まだアイテムは追加されていません。

だから主な質問は

ListView が見えなくても動的に項目を追加し、古い項目を保持するにはどうすればよいですか?

PS: Android API は、私が今まで出会った中で最悪の 1 つだと言わざるを得ません。

4

2 に答える 2

1

コンテンツ ビューを変更すると、以前のビューはすべて破棄されます。アダプターを使用していますか?その場合、すべてのアイテムをリストに再度追加するのは非常に簡単です。

onCreate 以外で ContentView を設定する理由はありません。

コンテンツ ビューを変更するのではなく、複数の画面が必要な場合は、新しいアクティビティを開始します。

于 2012-12-27T16:18:26.653 に答える
-1

アイテムを動的に追加:

//add at the top of the list
mListView.addHeaderView(itemView);
// add at the bottom of the list
mListView.addFooterView(itemView);
于 2012-12-27T15:39:46.213 に答える