Фон предметов меняется некорректно. Журнал показывает правильные значения. Как это исправить? - PullRequest
0 голосов
/ 31 мая 2019

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

...

   @Override
    public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
        ...

        if (dayOfNotification.after(expirationDateDt))
            viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_expired_products));
        if (multiSelectList.contains(productList.get(position))) {
            viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_product_selected));
            Log.d(String.valueOf(productList.get(position).getId()), productList.get(position).getName());
        }

...

Я хочу изменить цвета фона только выбранных продуктов.

1 Ответ

0 голосов
/ 31 мая 2019

Для вашего условия в методе onBindViewHolder вы должны установить фон if-else в обоих случаях. Проверьте здесь ...

if (dayOfNotification.after(expirationDateDt)){
             viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_expired_products));
    }
else{
  viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_not_expired_products));
          //for not expired item color as background_not_expired_products
 }
if (multiSelectList.contains(productList.get(position))) {
                viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_product_selected));
 Log.d(String.valueOf(productList.get(position).getId()), productList.get(position).getName());
            }
else{
    viewHolder.itemView.setBackgroundColor(resources.getColor(R.color.background_product_not_selected));
    //say background_product_not_selected as your color for not selected item

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