Получить массив RadioButtons в Радиогруппе в Android

есть ли способ получить массив (или коллекцию) в RadioButtons в 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, все его дочерние элементы-это Радиобутоны, которые вы добавили. Вы можете перебрать все дочерние представления, чтобы получить доступ к переключатели.