Adicionar botões de opção ao app

Testar o Compose
O Jetpack Compose é o kit de ferramentas de interface recomendado para Android. Aprenda a adicionar componentes no Compose.

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.

Exemplo de botões de opção do material.io
Figura 1. Um exemplo de botões de opção do Material Design.

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.