0

registerDataSetObserverタイトルの通り、の使用法を理解するのに苦労していConstructorますcwac-adapter

 /**
  * Constructor wrapping a supplied ListAdapter
  */
  public AdapterWrapper(ListAdapter wrapped) {
    super();

    this.wrapped=wrapped;

    wrapped.registerDataSetObserver(new DataSetObserver() {
      public void onChanged() {
        notifyDataSetChanged();
      }

      public void onInvalidated() {
        notifyDataSetInvalidated();
      }
    });
  }

これにより、への再帰呼び出しが作成されませんnotifyDataSetChanged()か?

私の理解では、の登録されたすべてのオブザーバーをnotifyDataSetChanged()呼び出します。したがって、を呼び出すと再帰呼び出しが作成されます。onChangedAdapternotifyDataSetChanged()onChanged()

私の理解は間違っていますか?はいの場合、ここで何が起こっているのでしょうか。そうでない場合、そのような再帰的な呼び出しを行うことの使用は何ですか?

4

1 に答える 1

2

2つのアダプターがあります。それらをリストとラッパーと呼びましょう。リストに変更があった場合は、ラッパーに通知します。これ以上のコードは実行されません。

于 2012-10-02T20:21:28.833 に答える