Как получить выбранный индекс радиогруппы в Android - PullRequest
194 голосов
/ 22 июня 2011

Есть ли простой способ получить выбранный индекс RadioGroup в Android или мне нужно использовать OnCheckedChangeListener для прослушивания изменений и иметь что-то, что содержит последний выбранный индекс?

пример xml:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
    <RadioButton android:id="@+id/radio1" android:text="option 1" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio2" android:text="option 2" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio3" android:text="option 3" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio4" android:text="option 4" android:layout_width="wrap_content" android:layout_height="wrap_content" />
    <RadioButton android:id="@+id/radio5" android:text="option 5" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</RadioGroup>

, если пользователь выбирает option 3 Я хочу получить индекс, 2.

Ответы [ 13 ]

2 голосов
/ 22 декабря 2014
 int index_selected = radio_grp.indexOfChild(radio_grp
                .findViewById(radio_grp.getCheckedRadioButtonId()));
1 голос
/ 27 апреля 2017

просто используйте это:

    int index = 2;
    boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId();
1 голос
/ 09 сентября 2015

вы можете сделать

findViewById

из радиогруппы.

Вот пример:

((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true);
...