2017-08-14 124 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 
      }