@Ryabos

Нормально ли хранить состояние selected в экземпляре элемента RecyclerView?

Задача: по клику изменить фон выбранного элемента. И установить фон по умолчанию для элемента, который был выбран до этого (если был).

Я решил хранить флаг selected в классе, который представляет объект. При клике пройтись по всем элементам и всем выставить флаг в false, а выбранному элементу установить значение true.

Насколько это приемлемо с точки зрения принятых соглашений? (какое количество WTF? в минуту можно услышать, показав такой код другим разработчикам?)

И еще: где помимо Android Studio можно найти актуальные примеры решения таких вот шаблонных задач, чтобы не плодить банальные вопросы на Тостере?
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
@MaxDgd
android dev
"Я решил хранить флаг selected в классе, который представляет объект" - what kind of object: data or ViewHolder.
If data - it's acceptable, if ViewHolder - no (it's a way to bugs)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Beshere
@Beshere
Инженер-программист
Это зря. Просто заведи переменную selected и храни там номер в листе или хоть ссылку на сам объект.
Ответ написан
@zakkav
Это только так и делается. У айтема который передаем во ViewHolder добавляем поле isSeleсеted, по клику передаем событие во внешнею среду (активити/презентер/фрагмент етц) какой элемент выбран(обрабатываем наш список) и обновляем ресайклер, желательно с DiffUtils.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ЭЛКОМ+ Санкт-Петербург
от 80 000 до 110 000 руб.
iGooods.ru Санкт-Петербург
от 150 000 руб.
Frogogo Москва
от 120 000 руб.