Dodawanie pól wyboru do aplikacji

Wypróbuj sposób tworzenia wiadomości
Jetpack Compose to zalecany zestaw narzędzi UI na Androida. Dowiedz się, jak dodawać komponenty w oknie tworzenia wiadomości

Pola wyboru umożliwiają użytkownikowi wybranie co najmniej 1 opcji w zestawie. Opcje z polami wyboru zwykle umieszczasz na pionowej liście.

Przykładowe pola wyboru z material.io
Rysunek 1. Przykładowe pola wyboru z pola wyboru Material Design.

Aby utworzyć każdą opcję pola wyboru, utwórz CheckBox w układzie. Zestaw opcji pól wyboru pozwala użytkownikowi wybrać wiele elementów, więc każde pole jest zarządzane osobno. Musisz zarejestrować detektor kliknięć dla każdego z nich.

Reagowanie na zdarzenia kliknięcia

Zacznij od utworzenia układu z CheckBox obiektami na liście:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <CheckBox android:id="@+id/checkbox_meat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Meat" />
    <CheckBox android:id="@+id/checkbox_cheese"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cheese"/>
</LinearLayout>

Gdy układ będzie gotowy, przejdź do Activity lub Fragment, znajdź widoki CheckBox i ustaw odbiornik zmian, jak w tym przykładzie:

Kotlin

findViewById<CheckBox>(R.id.checkbox_meat)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Meat is checked: $isChecked")
    }

findViewById<CheckBox>(R.id.checkbox_cheese)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Cheese is checked: $isChecked")
    }

Java

findViewById<CheckBox>(R.id.checkbox_meat)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Meat is checked: $isChecked");
    }

findViewById<CheckBox>(R.id.checkbox_cheese)
    .setOnCheckedChangeListener { buttonView, isChecked ->
        Log.d("CHECKBOXES", "Cheese is checked: $isChecked");
    }

Za każdym razem, gdy pola wyboru zmienią stan, poprzedni kod powoduje wydrukowanie komunikatu w narzędziu Logcat.