我有一个ListView
,由自定义适配器填充:
public class myAdapter implements ListAdapter
这个基本部分正在运作 - 使用正确的数据创建视图,一切都很好。
列表中的数据偶尔会发生变化,我需要能够在整个过程中刷新整个数据。我正在努力弄清楚如何做到这一点。
BaseAdapter
提供notifyDataSetChanged()
,因此我可以让我的类扩展BaseAdapter:
public class myAdapter extends BaseAdapter implements ListAdapter
但只是在我的对象上调用notifyDataSetChanged()
确实......好吧,就我所见,没有任何东西。当然ListView
没有更新,myAdapter.getView()
没有被调用。
在invalidate()
上拨打ListView
似乎也没有效果。
我的适配器似乎需要知道数据更改的可能性,但我不明白如何将其与BaseAdapter
和/或ListAdapter
联系起来。
答案 0 :(得分:3)
钩子我的适配器如何了解notifydatasetchanged
BaseAdapter
下的实现Observer
模式,notifyDataSetChanged
通知观察者。
如果您implements ListAdapter
,则必须提供自己的registerDataObser
和unregisterDataObserver
版本。如果你把它们留空,notifyDatasetChanged
什么都不做。另一方面BaseAdapter implements ListeAdapter
并且已经提供了上述方法的实现。