我的适配器如何了解notifydatasetchanged

时间:2015-05-09 10:02:38

标签: android listview baseadapter notifydatasetchanged

我有一个ListView,由自定义适配器填充:

public class myAdapter implements ListAdapter

这个基本部分正在运作 - 使用正确的数据创建视图,一切都很好。

列表中的数据偶尔会发生变化,我需要能够在整个过程中刷新整个数据。我正在努力弄清楚如何做到这一点。

BaseAdapter提供notifyDataSetChanged(),因此我可以让我的类扩展BaseAdapter:

public class myAdapter extends BaseAdapter implements ListAdapter

但只是在我的对象上调用notifyDataSetChanged()确实......好吧,就我所见,没有任何东西。当然ListView没有更新,myAdapter.getView()没有被调用。

invalidate()上拨打ListView似乎也没有效果。

我的适配器似乎需要知道数据更改的可能性,但我不明白如何将其与BaseAdapter和/或ListAdapter联系起来。

1 个答案:

答案 0 :(得分:3)

  

我的适配器如何了解notifydatasetchanged

钩子BaseAdapter下的

实现Observer模式,notifyDataSetChanged通知观察者。

如果您implements ListAdapter,则必须提供自己的registerDataObserunregisterDataObserver版本。如果你把它们留空,notifyDatasetChanged什么都不做。另一方面BaseAdapter implements ListeAdapter并且已经提供了上述方法的实现。