2017-08-14 10 views
0

AndroidアプリでRecyclerViewを使用すると、DiffUtilなどのソリューションを使用して、多くの投稿とチュートリアルでリストの更新を管理するアダプタハンドルがあります。ただし、アダプタはViewレイヤーに存在するため、これはMVPに従わないようです。Android MVP:RecyclerViewへの変更を処理する

したがって、RecyclerViewを最新の状態に保ちながら、Presenter(またはモデル)にRecyclerViewによって表示される項目のリストの変更を管理する方法をどのように与えることができますか?

たとえば、RecyclerViewは、電話機が接続できる使用可能なBluetoothデバイスのリストを表示しています。各行には、デバイス名とRSSI値が含まれています。 Presenterは、最大から最小のRSSI値までデバイスを表示したいと考えており、検出された新しいデバイスを挿入し、もはや使用できなくなったデバイスを削除する必要があります。

Source 1およびsource 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 
      } 
関連する問題