@hax
junior developer

Как правильно описать обработку нажатий клавиш в RecyclerView?

Имеется RecyclerView с вот таким вот шаблоном:
q74hEU0mR-Wz3wskH8cZjg.png
Для нее я составил вот такую модель:
class PostModel {

    public String title;
    public String subtitle;
    public String mainText;

    public int likes;
    public int dislikes;
    public final Random rand = new Random();

    public PostModel(String newTitle, String newSubtitle, String newMainText) {
        this.title = newTitle;
        this.subtitle = newSubtitle;
        this.mainText = newMainText;
        this.likes = rand.nextInt(1000);
        this.dislikes = rand.nextInt(1000);
    }
}


Требуется описать обработчик событий, который при нажатии на кнопку лайка увеличивал бы счетчиков лайков или дизлайков.
Я попробовал сделать это в адаптере в методе onBindViewHolder, но при нажатии на любую из кнопок лайка увеличивался только самый нижний элемент. Как правильно это сделать?
  • Вопрос задан
  • 333 просмотра
Решения вопроса 2
KuSu
@KuSu
Android разработчик
Я использую в таких случаешь следующее:
Внутри onBindViewHolder на кнопки вешаешь OnClickListener. В нем из списка элементов выбераешь элемент под номером holder.getAdapterPosition(), в нем изменяешь значение лайков/дизлайков и оповещаешь о том, что данные изменились.
Ответ написан
Комментировать
@AlexeyVD
Обрабатывайте клики во ViewHolder'е. Вот тут у меня можете посмотреть простенький пример как это делается.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы