Программирование Android Как использовать RadioGroup и RadioButton? Sun, December 21 2014  

Поделиться

нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Как использовать RadioGroup и RadioButton? Печать
Добавил(а) microsin   

1. В проекте Eclipse откройте файл res\layout\activity_main.xml. Выберите графический вариант редактирования (нижняя закладка Graphical Layout). В представлении Palette раскройте раздел Form Widgets, перетащите на форму активности виджет RadioGroup.

2. По умолчанию в группе RadioGroup будет 3 радиокнопки: radio1, radio2 и radio3. Нужное количество радиокнопок и их свойства удобно изменять в текстовом представлении файла activity_main.xml, для этого переключитесь в текстовый режим редактирования (нижняя закладка activity_main.xml). Обычно изменяют следующие свойства:

android:id="@+id/radio1" здесь указывается текстовый идентификатор, который потом будет использоваться в программе для доступа к радиокнопке (здесь идентификатор radio1).
android:text="произвольный текст" Здесь указывается текст, который должен отображаться напротив радиокнопки, либо идентификатор, ссылающийся на ресурс текста.

Для того, чтобы кнопки были кликабельны, и к ним можно было привязать обработчик события переключения, необходимо к каждой радиокнопке добавить еще два атрибута:

android:clickable="true"
android:onClick="тут_имя_функции_обработчика_клика_на_радиокнопке"

Вот пример, как группа радиокнопок может выглядеть в файле activity_main.xml после внесения необходимых изменений:

    < RadioGroup
        android:id="@+id/radioGroupSetectTest"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/vibratorTestBtn"
        android:layout_centerHorizontal="true" >
        < RadioButton
            android:id="@+id/radioVibrateRun"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:clickable="true"
            android:onClick="onClickRadioSelectTest"
            android:text="Запуск постоянной вибрации" />
        < RadioButton
            android:id="@+id/radioVibrateStop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:onClick="onClickRadioSelectTest"
            android:text="Остановка вибрации" />
        < RadioButton
            android:id="@+id/radioVibrateShort"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:onClick="onClickRadioSelectTest"
            android:text="Вибрация 100 мс" />
    < /RadioGroup >

3. В обработчике создания формы может понадобиться определить текущее состояние группы радиокнопок, чтобы это можно было использовать в программе. Пример, как это делается в обработчике onCreate:

private int selectedTest;
@Override
protected void onCreate(Bundle savedInstanceState)
{
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
RadioGroup radio = (RadioGroup)findViewById(R.id.radioGroupSetectTest ); selectedTest = radio.getCheckedRadioButtonId(); Log.d("onCreate", "selectedTest="+selectedTest); }

В этом примере текущее состояние группы радиокнопок (какая сейчас радиокнопка выбрана) запоминается в глобальной (для класса MainActivity) переменной selectedTest.

4. Теперь нужно написать код функции обработчика кликов на радиокнопке (в этом примере функция обработчика называется onClickRadioSelectTest). Эту функцию можно определить в классе MainActivity.

public void onClickRadioSelectTest (View v)
{
   selectedTest = v.getId();
   Log.d("onClickRadioGroupSelectTest", "selectedTest="+selectedTest);
}

В функции onClickRadioSelectTest идентификатор выбранной кнопки запоминается в переменной selectedTest.

Eclipse-Vibratortest

Готовый пример работы с радиокнопками можно скачать по ссылке [2].

[Ссылки]

1. RadioGroup site:developer.android.com.
2140328Vibratortest.zip - исходный код Java, демонстрирующий использование RadioGroup и RadioButton (проект Eclipse для Android).

 
Top of Page