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.
Готовый пример работы с радиокнопками можно скачать по ссылке [2].
[Ссылки]
1. RadioGroup site:developer.android.com. 2. 140328Vibratortest.zip - исходный код Java, демонстрирующий использование RadioGroup и RadioButton (проект Eclipse для Android). |