Получить массив RadioButtons в Радиогруппе в Android
есть ли способ получить массив (или коллекцию) в RadioButton
s в Android RadioGroup
? Я хотел бы добавить отдельных слушателей к переключателям, но я не вижу никакого очевидного способа их повторения.
2 ответов
Это следует сделать трюк:
int count = radioGroup.getChildCount();
ArrayList<RadioButton> listOfRadioButtons = new ArrayList<RadioButton>();
for (int i=0;i<count;i++) {
View o = radioGroup.getChildAt(i);
if (o instanceof RadioButton) {
listOfRadioButtons.add((RadioButton)o);
}
}
Log.d(TAG,"you have "+listOfRadioButtons.size()+" radio buttons");
Почему вам нужно запросить радиогруппу? Почему вы не можете напрямую настроить своих слушателей на RadioButton, вы должны быть в состоянии получить доступ к radioButtons, так как вы тот, кто добавляет их в радиогруппу.
независимо от того, RadioGroup - это просто специальный тип LinearLayout, все его дочерние элементы-это Радиобутоны, которые вы добавили. Вы можете перебрать все дочерние представления, чтобы получить доступ к переключатели.