Доброго времени суток!
Ниже указан код, который я использую для добавления или удаления из избраного
imageButton = (ImageButton) findViewById(R.id.favorite_button);
// if(db.isFavorite(valueOf(medicationList.get(position).get_id())))
// imageButton.setImageResource(R.drawable.ic_add_to_fav);
// Ловим клик по кнопке "Добавить в избранное"
holder.itemView.findViewById(R.id.favorite_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!db.isFavorite(valueOf(medicationList.get(position).get_id()))) {
db.addToFavorites(valueOf(medicationList.get(position).get_id()));
imageButton.setImageResource(R.drawable.ic_add_to_fav);
} else {
db.removeFromFavorites(valueOf(medicationList.get(position).get_id()));
imageButton.setImageResource(R.drawable.ic_remove_from_fav);
}
}
});
Сама функция записи и удаления ид выбранного элемента в БД отрабатывает корректно, но проблема с ImageButton. Независимо, от того какой элемент был выбран всегда кнопка выделяется "избранной" только для первого элемента)))))
Пробовал, как
medicationList.get(position).get_id()
так и
medicationList.get(holder.getAdapterPosition()).get_id()
В чем моя ошибка? Почему выделяется всегда только один и тот же элемент вместо выбранного. (Повторюсь, что сам выбранный элемент добавляется в БД корректно)
И еще попутный вопрос:
имеется небольшая строка кода, которая по идее, должна в методе onCreate отметить все элементы, которые являются избранными.
// if(db.isFavorite(valueOf(medicationList.get(position).get_id())))
// imageButton.setImageResource(R.drawable.ic_add_to_fav);
Но тоже как-то не отрабатывает(
Буду признателен за помощь или за подсказку