拖放RealmResults

问题描述 投票:0回答:1

对不起我的英语不好。我有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);
            }
        };
android realm recycler-adapter
1个回答
1
投票

RealmResult不是列表,因此你不能交换RealmResult中的项目。

你能做的是

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

但是,这将使列表不受管理,这意味着如果更新数据库中的数据,对象将不会自动更新。

© www.soinside.com 2019 - 2024. All rights reserved.