0

在 Android 应用程序中使用 RecyclerView 时,许多帖子和教程都使用适配器处理列表的更新,使用 DiffUtil 等解决方案。然而,这似乎并不遵循 MVP,因为适配器存在于视图层中。

那么,如何让 Presenter(或模型)负责管理对 RecyclerView 显示的项目列表的更改,同时保持 RecyclerView 最新?

例如,RecyclerView 显示手机可以连接的可用蓝牙设备列表,每行包含设备名称和 RSSI 值。演示者想要从最大到最小的 RSSI 值显示设备,并且想要插入发现的新设备并删除不再可用的设备。

源 1源 2是我用来使用 MVP 实现 RecyclerViews 的很好的入门者,但它们不包括主动更改的数据集。

4

1 回答 1

0

我认为最好的方法是使用类似的东西

私有 ObservableList 列表;

然后

 this.observableList.addOnListChangedCallback(new ObservableList.OnListChangedCallback<ObservableList<***>>() {
        @Override
        public void onChanged(ObservableList<***> items) {

        }

        @Override
        public void onItemRangeChanged(ObservableList<***> items, int positionStart, int itemCount) {

        }

        @Override
        public void onItemRangeInserted(ObservableList<***> items, int positionStart, int itemCount) {
            recyclerAdapter.notifyDataSetChanged(); //for example
            }
于 2017-08-14T18:54:10.873 回答