Невозможно обновить мнение переработчика в соседнем фрагменте окна просмотра - PullRequest
0 голосов
/ 20 июня 2019

У меня есть viewpager, содержащий 2 фрагмента. Каждый из этих фрагментов содержит recyclerview с адаптером, который извлекает данные из той же базы данных SQLite. recyclerview в первом фрагменте содержит данные из SQLite, где contract.COL_4 равно 1. recyclerview во втором фрагменте содержит данные из SQLite, где contract.COL_4 равно 2. Когда пользователь проводит элемент из recyclerview в первом фрагменте я хочу, чтобы элемент переместился на recyclerview второго фрагмента (измените contract.COL_4 с 1 на 2) и наоборот.

private void setItemTouchCallBack() {
//day = 1 when user at fragment 1, day = 2 when user at fragment
        if (day == 1) {
            simpleItemTouchCallBack = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {

                @Override
                public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) {
                    return false;
                }

                @Override
                public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
                    changeDay(viewHolder.getAdapterPosition());
                }
            };
        } else {
            simpleItemTouchCallBack = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {

                @Override
                public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder viewHolder1) {
                    return false;
                }

                @Override
                public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
                    changeDay(viewHolder.getAdapterPosition());
                }
            };
        }

    }


        private void changeDay(int position){
            int d;
            if (day == 1) {
                d = 2;
            } else {
                d = 1;
            }
            ContentValues cv = new ContentValues();
            int id = list.get(position).getid();
            cv.put(contract.COL_4, d);
            resolver.update(ContentUris.withAppendedId(contract.PATH_TASKS_URI, id), cv, null, null);
//fillList requeries the data from contentprovider to arraylist that is fed to the adapter
            fillList();
            madapter.notifyDataSetChanged();
        }

Пока что элемент исчезает из текущего фрагмента, но не выходит из соседнего фрагмента. Я предполагаю, что я должен уведомить DataSetChanged на адаптере утилита просмотра на соседнем фрагменте? но я не уверен, как получить экземпляр этого. Кроме того, это также может быть потому, что фрагмент предварительно загружен? Пожалуйста, помогите, я сейчас застрял на этом. Спасибо!

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