-1

Я застрял на небольшой проблеме.Как получить данные из определенных строк только в RecyclerView?

Когда я нажимаю на строку в своем RecyclerView, я хотел бы изменить ее цвет на другой цвет (например: красный).
Затем, если я снова нажму на эту строку, я хотел бы вернуть ее цвет в нормальный (то есть белый).
Затем, если я нажму на вторую строку или n-ю строку, я хотел бы сделать то же самое.

Я попытался работать над классом адаптера RecyclerView, в моем ViewHolder я попробовал некоторые идеи, подсчитывающие клики пользователей, установив логическое значение для проверки цветных строк и getAdapterPosition, чтобы узнать, что такое позиция строки ... но на самом деле все мои попытки потерпели неудачу!

Не могли бы вы помочь мне с этой проблемой?

Кажется, что я близок к разгадке, но нужно немного помочь

+0

'StateList Selector' поможет вам. –

ответ

0

Вы собираетесь нужно следить, какие элементы были выбраны в списке (в противном случае любые изменения в представлении будет просто быть переработаны).

Сохраните список выбранных элементов в вашем адаптере. В адаптере onBindViewHolder вы можете проверить этот список, и если список содержит представление/элемент, вы можете соответствующим образом покрасить вид.

Edit: Смотрите здесь для рабочего примера How to properly highlight selected item on RecyclerView?

+0

'holder.itemsParent.setOnClickListener (новый View.OnClickListener() { @Override общественного недействительными OnClick (View Вид) { mylist.add (holder.serviceNameAdded.getText() ToString());. } }) ; ' , если вы имеете в виду это, я думаю, что он добавит каждый щелчок по строке в список Итак, как я могу обрабатывать первый щелчок пользователя и второй щелчок?! –

+0

Вам нужно будет передать ваш onClickListener в адаптер для адаптера, который будет установлен на каждом представлении. – jak10h

+0

[https://ideone.com/FLsH0F] У вас, пожалуйста, проверьте это? Я думаю, что это мое старое решение –

Смежные вопросы