В архитектуре MVVM ваш пользовательский интерфейс управляется данными, предоставляемыми вашей ViewModel.В вашем конкретном случае это означает, что Item
, который вы отображаете в ViewHolder, должен иметь возможность определить, выбран он или нет.Для этого самое простое решение - добавить логический isSelected
в ваш класс Item
.Это логическое значение позволит вам решить, какой backgroundColor
использовать в макете.
Чтобы связать все вместе способом MVVM, ваша реализация ItemClickListener
должна изменить List<Item>
вашей ViewModel, переключив isSelected
логический элемент, который был только что нажал.
Если вы используете компоненты архитектуры LiveData, обязательно опубликуйте новое значение List, которое, как я полагаю, уведомит ваш адаптер об изменении.Если вы этого не сделаете, ваш пользовательский интерфейс не будет обновлен, поскольку RecyclerView не будет знать об изменении отображаемых данных.