Adicionar botões de opção ao app

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

Com os botões de opção, o usuário pode selecionar uma opção em um conjunto de opções mutuamente exclusivas. Use os botões de opção se o usuário precisar conferir todas as opções disponíveis. Se não for necessário mostrar todas as opções, use um ícone de carregamento.

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

Para criar cada opção de 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 dentro de 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 abaixo 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>

Dentro de 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.