【问题标题】:How can one set a listener on a ListView that triggers whenever the list's data changes?如何在列表数据更改时触发的 ListView 上设置侦听器?
【发布时间】:2015-03-03 03:30:55
【问题描述】:

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

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

我是否必须创建自己的侦听器才能做到这一点(如果需要,简要说明如何做会很有帮助)还是有内置的方法来侦听这些事件?

【问题讨论】:

    标签: android android-listview android-arrayadapter


    【解决方案1】:

    我居然找到了解决办法:

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

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

    【讨论】:

    • 如果您正在通过网络进行请求,并且需要在数据到达时得到通知(例如隐藏进度条),这非常有用。
    • 当您使用服务时也可以使用,将此侦听器结束或向用户显示消息。很好的答案。
    猜你喜欢
    • 1970-01-01
    • 2019-05-14
    • 2020-08-27
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多