Все дуже просто - вішайте слухач кліків в адаптері на RadioGroup і прописуйте колбек (інтерфейс зворотного виклику) отриманих даних, якщо їх потрібно передавати в активують.
Для ідентифікації переданих даних (в якому Айтем стався клік) через колбек передавайте так само поточне значення position з адаптера.
Якщо потрібно отримувати дані з Айтем не в реальному часі (обробляти кожен клік окремо), а, наприклад, після натиснення на яку то кнопку завершення вибору, то все ще простіше-тоді колбек не потрібен, інформація з слухача збирається в якийсь сховище (колекцію даних, моделей) і створюється метод в адаптері, який повертає цю колекцію.
При кліці на кнопку, активують звертається до цього методу і отримує набір даних з результатами вибору.
Так само вишепомянутие колекція даних по станам в RadioGroup знадобиться для зберігання поточного вибору й відновлення Айтем при Скролл, так як Айтем періодично переіспользуются і якщо не зберігати стан, то вибір буде втрачено.
Приблизний код адаптера без колбека може виглядати так:
Тут ми при кліці в RadioGroup зчитуємо, на який з RadioButton клікнув користувач і зберігаємо його вибір, далі, при формуванні Айтем відновлюємо вибір користувача, щоб уникнути втрати введених даних через перевикористання елементів списку.
метод getCheckedAnswers () повертає масив значень, де позиція в масиві буде відповідати позиції в списку, значення наступні:
- -1 - Нічого не вибрано
- 0 - обраний перший пункт в RadioGroup
- 1 - обраний другий пункт
- 2 - обраний третій пункт
- 3 - обраний четвертий пункт
звертатися з активують (наприклад в обробнику кліка по кнопці checkAnswers) наступним чином:
PS: цей код мені ніде протестувати, тому він є скоріше шаблоном для демонстрації рішення, ніж готовим рішенням для копипаста.