Android - 更新ListView项目而不调用NotifyDataSetChanged()

时间:2017-08-30 10:01:07

标签: android listview bluetooth listener adapter

我正在尝试开发一种蓝牙API,它有一个监听器,可以在扫描后找到所有附近的蓝牙设备。我使用这个监听器将所有找到的设备存储在一个列表中(每次我发现一个设备存储在列表中)

我的想法是:开发人员可以将此列表引用到他的适配器中,以显示所有附近可用的设备。如何在不调用adapter.notifyDataSetChanged()的情况下更新并通知对适配器的更改?原因很简单:当设备正在扫描时,我想显示已建立的设备。

如果您认为我的想法是错误的,那么任何想法都会受到欢迎。

感谢。

2 个答案:

答案 0 :(得分:0)

  

我的想法是:开发人员可以将此列表引用到他的适配器中   显示所有附近可用的设备。我如何才能更新和   在没有调用的情况下通知适配器的更改   adapter.notifyDataSetChanged()?原因很简单:设备   正在扫描我想要显示已创建的设备。

只需使用runnable即可根据分钟更新任何更改。这是一种不用调用adapter.notifyDataSetChanged()

的替代方法

此代码每分钟运行一次。

refresh = new Runnable() {
            @Override
            public void run() {
                //Clear the list
                //Call the list ie. Asynctask
                handler.postDelayed(this, 60 * 1000);
            }
        };

        handler.postDelayed(refresh, 60 * 1000);

答案 1 :(得分:0)

您是否在询问如何通知列表中推送的单个新数据?

如果有的话,我的文章会以非常详细的方式描述这样做的过程RecyclerView Adapters