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 narzędziu Compose

Pola wyboru pozwalają użytkownikowi wybrać jedną lub więcej opcji z zestawu. Zwykle wyświetlane jest pole wyboru na pionowej liście.

Ilustracja pokazująca przykładowe pola wyboru w material.io
Rysunek 1. Przykład pól wyboru z karty Pole wyboru Material Design.

Aby dodać poszczególne opcje, utwórz CheckBox w Twoim układzie. Ponieważ zestaw opcji, które pozwalają użytkownikowi zaznaczyć wiele elementów, a każdym z nich można zarządzać oddzielnie, Musisz też zarejestrować detektor kliknięć w przypadku 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ź swój CheckBox i ustawić detektor 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");
    }

Poprzedni kod drukuje komunikat w Logcat za każdym razem, gdy pola wyboru zmieniają stan.