抱歉我的英文。我有recyleView,在适配器中有RealmResults
。我尝试做下拉列表,但当我将List替换为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);
}
};
答案 0 :(得分:1)
RealmResult
不是列表,因此您无法交换RealmResult
中的项目。
你能做的是
List<MyItem> list = realm.copyFromRealm(realmResults);
但是,这会使列表不受管理,这意味着如果更新数据库中的数据,对象将不会自动更新。