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 do botão de opção, crie um
RadioButton
no 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 usuário tocar 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>
Dentro da 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 maneira:
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 é mostrada no Logcat.