Optionsfelder zur App hinzufügen

Compose ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Informationen zum Hinzufügen von Komponenten in Compose

Über Optionsfelder können Nutzer eine Option aus einer Reihe von sich gegenseitig ausschließenden Optionen auswählen. Verwenden Sie Optionsfelder, wenn der Nutzer alle verfügbaren Optionen sehen muss. Wenn es nicht erforderlich ist, alle Optionen anzuzeigen, verwenden Sie stattdessen ein Dropdown-Menü.

Beispiel für Optionsfelder von material.io
Abbildung 1. Beispiel für Optionsfelder aus Material Design

Erstellen Sie für jede Optionsfeldoption ein RadioButton in Ihrem Layout. Da sich Optionsfelder gegenseitig ausschließen, sollten Sie sie in einem RadioGroup gruppieren. Das System sorgt dafür, dass jeweils nur ein Optionsfeld in einer Gruppe ausgewählt werden kann.

Auf Klickereignisse reagieren

Wenn der Nutzer ein Optionsfeld auswählt, empfängt das entsprechende RadioButton-Objekt ein On-Click-Ereignis.

Das folgende Beispiel zeigt eine Reaktion auf das Tippen des Nutzers auf ein RadioButton-Objekt in einer Gruppe:

<?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>

Suchen Sie in der Activity oder Fragment, in der dieses Layout gehostet wird, nach den Optionsfeldern und legen Sie für jedes von ihnen einen Änderungs-Listener fest:

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");
}

Wenn der Nutzer in diesem Beispiel auf eine der Optionsschaltflächen tippt, wird eine Meldung in Logcat ausgegeben.