Как сохранить состояние кнопки в RecyclerView, после выхода из Activity?

240
06 февраля 2020, 05:20

Вопрос заключается в следующем : У меня есть список RecyclerView, где возле каждого item есть кнопка(с картинкой). При нажатии на кнопку, изображение меняется. Мне нужно, чтобы сохранялось состояние кнопки (и сама картинка), если человек нажал на кнопку, и чтобы после выхода из Activity и захода обратно , кнопки осталась в том состоянии, в котором она была до выхода. Какие есть пути и варианты решения данного вопроса ?

Вот так я изменяю картинку и состояние кнопки:

Во ViewHolder я указал переменную boolean, которой указал значение false,и потом использовал в OnBindViewHolder.

public void onBindViewHolder(@NonNull final ProductViewHolder holder, final int position) {
    holder.textProduct.setText(list.get(position).getProductName());
    holder.btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(holder.click==false) {
                MainMenuActivity.basketList.add(list.get(position).getProductName());
                holder.btn.setBackgroundResource(R.drawable.delete);
                holder.click=true;
            }
            else
            {
                holder.btn.setBackgroundResource(R.drawable.plus);
                holder.click=false;
                MainMenuActivity.basketList.remove(list.get(position).getProductName());
            }
        }
    });
}
Answer 1
  1. Наилучший вариант - как указанно в комментарии - сохранять в БД либо уведомлять об изменении сервер, если список принимается с сервера.
  2. Если проект не содержит БД, то можно изменять элементы этого листа и передавать лист между активити, кладя его в Intent, но это не очень хорошее решение, т.к. если оба активити будут уничтожены пользователем - изменения в списке пропадут
READ ALSO
Как console log работает без вызова с параметром?

Как console log работает без вызова с параметром?

Недавно встретил в интернете такой коментарий:

218
Как получить все роли сервера Discord?

Как получить все роли сервера Discord?

Пишу бота для дискордаНужно получить все роли сервера

229
Создать таблицу на jQuery

Создать таблицу на jQuery

Я хочу использовать значения 2 полей ввода и сделать таблицу<tr> должны быть равны значению, заданному в #inp1, а <td> - #inp2

258
Подсчет checkbox в калькуляторе

Подсчет checkbox в калькуляторе

Более менее довел калькулятор до умаГлавная трудность с чекбоксами: Нужно значения выделенных чекбоксов прибавлять к общей сумме с условием:...

275