Прежде чем задать этот вопрос, я искал его, для него есть много решений, но это не то, что мне нужно. У меня есть RecyclerView с RadioGroup с 3 кнопками. Я хочу получить checkedState
его дочерних элементов. Я не хочу, чтобы он попал в onBindViewHolder
, применив onCheckedStateChangeListener
, я хочу собрать все проверенные и непроверенные состояния с помощью кнопки в действии, например. onCheckedStateChangeListener
работает только с кем-то, кто меняет состояние, но я хочу получить данные без такого слушателя, я не могу понять, как это применить?
Как получить проверенное состояние RadioGroup в Recyclerview?
Ответы (1)
Я предполагаю, что у вас есть RadioGroup в каждой строке вашего представления ресайклера? В противном случае вам действительно не нужен переработчик, просто используйте радиогруппу напрямую.
Но для каждой строки в onBindViewHolder
используйте onCheckedStateChangeListener
для обновления объектов вашей модели, которые поддерживают ваш RecyclerView
. Затем, когда ваша кнопка нажата, вы можете получить адаптер из RecyclerView
и просмотреть каждую модель, чтобы найти, какой элемент выбран.
person
Zachary Sweigart
schedule
24.08.2018
Если не проверена кнопка то?? Если кнопка не отмечена,
onCheckedStateChangeListener
будет нулевым.
- person Shahzad Akram; 24.08.2018
Если ни одна кнопка не отмечена, вы правы,
onCheckedStateChangeListener
никогда не будет вызываться; однако, поскольку он никогда не вызывался, ваша модель не будет обновляться, и вы можете проверить if(myModel.getCheckedObject() == null) { displayError(); }
- person Zachary Sweigart; 24.08.2018