Android 拖放RealmResults
对不起我的英语。我有recyleView,在适配器中我有Android 拖放RealmResults,android,realm,android-recyclerview,Android,Realm,Android Recyclerview,对不起我的英语。我有recyleView,在适配器中我有RealmResults。我尝试使用下拉列表,但当我将列表替换为RealmResults时出现错误: java.lang.UnsupportedOperationException: This method is not supported by 'RealmResults' or 'OrderedRealmCollectionSnapshot'. 这是我的代码: ItemTouchHelper.Callback _ithCallback
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);
}
};
RealmResult
不是列表,因此您无法交换RealmResult
中的项目
你能做的就是
List<MyItem> list = realm.copyFromRealm(realmResults);
List List=realm.copyFromRealm(realmResults);
但是,这将使列表处于非托管状态,这意味着如果更新数据库中的数据,对象将不会自动更新