Изменить порядок в базе данных номеров с помощью Itemtouchhelper - PullRequest
1 голос
/ 09 апреля 2019

У меня есть приложение, которое использует переработчик для отображения элементов базы данных. Я хочу переставить элементы, перетаскивая их с помощью itemtouchhelper. Я понял, как это сделать, но не знаю, как обновить базу данных комнаты.

ItemTouchHelper helper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(ItemTouchHelper.LEFT|ItemTouchHelper.RIGHT|ItemTouchHelper.DOWN|ItemTouchHelper.UP, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

            int dragFrom = -1;
            int dragTo = -1;
            boolean listChanged = false;

            @Override
            public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) {
                int from = viewHolder.getAdapterPosition();
                int to = viewHolder1.getAdapterPosition();

                if(dragFrom == -1) {
                    dragFrom =  from;
                }
                dragTo = to;
                listChanged = true;

                Collections.swap(mGames, from, to);
                gameAdapter.notifyItemMoved(from, to);

                return true;
            }

            @Override
            public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
                mGames.remove(viewHolder.getAdapterPosition());
                Game game = mGames.get(viewHolder.getAdapterPosition());
                mGameViewModel.deleteGame(game);
                gameAdapter.notifyItemRemoved(viewHolder.getAdapterPosition());
            }

            @Override
            public void onSelectedChanged(@Nullable RecyclerView.ViewHolder viewHolder, int actionState) {
                super.onSelectedChanged(viewHolder, actionState);

                if(actionState == ItemTouchHelper.ACTION_STATE_IDLE && listChanged){

                    //update database

                    listChanged = false;
                }
            }
        });

Например, я перетаскиваю элемент 3 на место 6, затем элемент 4 становится элементом 3, 5 становится 4, а 6 становится 5.

Есть ли специальный метод для этого или мне нужно найти свой собственный?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...