【问题标题】:Android MVP: handling changes to RecyclerViewAndroid MVP:处理对 RecyclerView 的更改
【发布时间】:2017-08-14 18:46:55
【问题描述】:

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

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

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

Source 1source 2 是我曾经使用 MVP 实现 RecyclerViews 的很好的入门者,但它们不涵盖积极变化的数据集。

【问题讨论】:

标签: android android-recyclerview mvp android-mvp


【解决方案1】:

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

私有 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
            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多