Os botões de opção permitem que o usuário selecione uma opção em um conjunto de opções mutuamente exclusivas. Use botões de opção se o usuário precisar ver todas as opções disponíveis listadas. Se não for necessário mostrar todas as opções, use um controle giratório.
Para criar cada opção de botão de opção, crie um
RadioButton
no seu layout. Como os botões de opção são mutuamente exclusivos, agrupe-os em um
RadioGroup.
O sistema garante que apenas um botão de opção em um grupo possa ser selecionado por vez.
Responder a eventos de clique
Quando o usuário seleciona um botão de opção, o objeto
RadioButton correspondente recebe um evento de clique.
O exemplo a seguir mostra uma reação ao toque do usuário em um objeto
RadioButton em um grupo:
<?xml version="1.0" encoding="utf-8"?> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pirates"/> <RadioButton android:id="@+id/radio_ninjas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Ninjas"/> </RadioGroup>
Na Activity ou Fragment que hospeda esse
layout, encontre os botões de opção e defina um listener de mudança para cada um deles, da
seguinte forma:
Kotlin
findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Pirates is checked: $isChecked") } findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Ninjas is checked: $isChecked") }
Java
findViewById<RadioButton>(R.id.radio_pirates).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Pirates is checked: $isChecked"); } findViewById<RadioButton>(R.id.radio_ninjas).setOnCheckedChangeListener { buttonView, isChecked -> Log.d("RADIO", "Ninjas is checked: $isChecked"); }
Neste exemplo, quando o usuário toca em um dos botões de opção, uma mensagem é impressa no Logcat.