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