2017-12-15 10 views
0

私の英語を残念に思う。私はrecyleViewを持って、アダプタで私はRealmResultsを持っています。私はドロップを行うと、ドロップダウンリストしてみてください、私はRealmResultsにリストを交換するとき、私はエラーを持っている:ドラッグ&ドロップRealmResults

java.lang.UnsupportedOperationException: This method is not supported by 'RealmResults' or 'OrderedRealmCollectionSnapshot'. 

これは私のコードです:

ItemTouchHelper.Callback _ithCallback = new ItemTouchHelper.Callback() { 
      @Override 
      public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { 
       try { 
        Collections.swap(categoryPresenter.getCategory(), viewHolder.getAdapterPosition(), target.getAdapterPosition()); 
        categoryAdapter.notifyItemMoved(viewHolder.getAdapterPosition(), target.getAdapterPosition()); 
       }catch (Exception e) { 
        Log.e("error", e.toString()); 
       } 

       return true; 
      } 

      @Override 
      public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {} 

      @Override 
      public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { 
       hideOpenedItems(recyclerView); 
       return makeFlag(ItemTouchHelper.ACTION_STATE_DRAG, 
         ItemTouchHelper.DOWN | ItemTouchHelper.UP | ItemTouchHelper.START | ItemTouchHelper.END); 
      } 
     }; 

答えて

1

RealmResultはリストではありませんので、あなたは交換することはできませんRealmResultの商品です。あなたは何ができるか

List<MyItem> list = realm.copyFromRealm(realmResults); 

しかし、これを使用すると、データベース内のデータを更新する場合、オブジェクトが自動的に更新されることはありませんを意味し、リストを管理対象外になりますです。

関連する問題