2017-08-14 121 views
0

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

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

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

Source 1source 2是我用来使用MVP实现RecyclerViews的好起步者,但它们不包括积极改变的数据集。

+0

我认为这将是对你有用和有趣:https://stackoverflow.com/questions/34019978/android-data-binding-observable-list-to-recyclerviews -适配器 – CzarMatt

回答

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 
      }