如何在ListView上设置一个侦听器,只要列表的数据发生变化就会触发该侦听器?

时间:2015-03-03 03:30:56

标签: android android-listview android-arrayadapter

我有一个带有自定义适配器的ListView。我想在ListView中附加一个侦听器,只要ListView中的数据发生更改,就会触发该侦听器,因为这可能会发生多种各样的方式,而且每当ListView更新时我都需要另一个视图来更新。基本上我希望无论何时直接或间接调用notifyDataSetChanged()(通过add(),remove()等)都会触发它。)

每当删除列表中的项目时,我都希望触发该项目。 每当一个项目被添加到列表中时,我希望它能够触发。 等等。

我是否必须创建自己的侦听器才能执行此操作(如果是,请简要说明如何提供帮助)或者是否有内置方式来侦听这些事件?

1 个答案:

答案 0 :(得分:21)

我实际上找到了解决方案:

_adapter = new CustomListAdapter(this.getActivity(), _list);
_adapter.registerDataSetObserver(new DataSetObserver()
{
   @Override
   public void onChanged()
   {
      // update other view
   }
});

完全按照我希望的方式工作!