Как использовать 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:clickable="true" Вот пример, как группа радиокнопок может выглядеть в файле 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); В этом примере текущее состояние группы радиокнопок (какая сейчас радиокнопка выбрана) запоминается в глобальной (для класса 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. |