0

正如标题所说,我很难理解registerDataSetObserverin the Constructorofcwac-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()将调用onChanged所有注册的观察者Adapter。因此,调用notifyDataSetChanged()onChanged()创建递归调用。

我的理解错了吗?如果是的话,这里到底发生了什么?如果不是,那么进行这种递归调用有什么用?

4

1 回答 1

2

你有两个适配器,我们称它们为 List 和 Wrapper。当您在列表中获得更改时,您会通知包装器。不再执行代码。

于 2012-10-02T20:21:28.833 回答