2015-05-09 60 views
1

我有一个ListView,通过自定义适配器填充:如何我适配器了解notifydatasetchanged

public class myAdapter implements ListAdapter 

此基础部分工作 - 意见与正确的数据创建,一切都很好。

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

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

public class myAdapter extends BaseAdapter implements ListAdapter 

只是我的对象上调用notifyDataSetChanged()呢......嗯,没事,只要我能看到。当然,ListView不会更新,并且不会调用myAdapter.getView()

ListView上调用invalidate()也似乎没有效果。

我的适配器似乎可能需要知道数据更改的可能性,但我不明白如何将它与BaseAdapter和/或ListAdapter配合使用。

回答

3

如何我适配器了解notifydatasetchanged

下钩BaseAdapter实现的Observer图案,并notifyDataSetChanged,通知观察者。

如果你implements ListAdapter你必须提供自己的版本registerDataObserunregisterDataObserver。如果你留下那些空的,notifyDatasetChanged什么都不做。另一方面,BaseAdapter implements ListeAdapter并已提供上述方法的实现。

+1

谢谢!基本上我的适配器应该只是扩展BaseAdapter,然后一切都很好。 –

+0

不客气 – Blackbelt

相关问题