3

notifyDataSetChangedクラスのメソッドのドキュメントでは、「基になるデータが変更され、データセットを反映するビューはそれ自体を更新する必要があることを、接続されたオブザーバーに通知します」とBaseAdapter記載されています。

ListView文字列配列 (の配列データ)の 3 番目の要素を変更したとします。リスト ビューの 3 番目のビュー アイテムは通知されますか?

また、いかがnotifyDataSetChanged()でしょgetView()うか?

4

1 に答える 1

8

文字列配列 (リストビューの配列データ) の 3 番目の要素を変更したとします。

これは、ユーザーに新しいデータセットを表示するために、そのデータ (この場合は文字列配列) を表示/ベース/使用するビューを無効にする (再測定、再描画) 必要があることを意味します。

リスト ビューの 3 番目のビュー アイテムは通知されますか?

いいえ、保護ListView者に通知されます。にアダプターを設定するListViewと、( からのListView) オブザーバーがそのアダプターに設定されます。アダプターを呼び出すと、データに何かが発生したことnotifyDataSetChangedをオブザーバーに通知します。ListViewこの時点でListView、行が再作成されて新しいデータが表示されます。

また、notifyDataSetChanged() と getView() はどのように関係していますか?

あなたの質問を理解しているかどうかわかりません。getViewアダプタのメソッドは、ListView必要なたびに新しい行を取得するために使用されます。notifyDataSetChangedアダプターを呼び出すと、 ListView. リストを再作成するときが来たら、アダプターListViewのメソッドを呼び出してgetView、必要な数の行 (画面に表示される行) を表示します。notifyDataSetChangedしたがって、メソッドを呼び出すたびgetViewに、表示されている行に対して呼び出されます。

于 2012-09-09T09:59:36.553 に答える