Thêm nút chọn vào ứng dụng

Thử cách Compose
Jetpack Compose là bộ công cụ giao diện người dùng được đề xuất cho Android. Tìm hiểu cách thêm thành phần trong Compose.

Các nút chọn cho phép người dùng chọn một tuỳ chọn trong một tập hợp các nút loại trừ lẫn nhau . Sử dụng nút chọn nếu người dùng cần xem tất cả tuỳ chọn có sẵn trong danh sách. Nếu không cần hiển thị tất cả các tuỳ chọn, hãy sử dụng spinner.

Ví dụ về nút chọn trên material.io
Hình 1. Ví dụ về nút chọn trên Chất liệu Thiết kế.

Để tạo từng tuỳ chọn nút chọn, hãy tạo một RadioButton trong bố cục của bạn. Vì các nút chọn loại trừ lẫn nhau, hãy nhóm các nút đó lại với nhau một RadioGroup. Hệ thống đảm bảo rằng chỉ có thể chọn một nút chọn trong nhóm tại một lúc.

Phản hồi sự kiện nhấp chuột

Khi người dùng chọn một nút chọn, Đối tượng RadioButton nhận được một sự kiện khi nhấp chuột.

Ví dụ sau đây minh hoạ một phản ứng khi người dùng nhấn vào RadioButton đối tượng trong một nhóm:

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

Trong Activity hoặc Fragment lưu trữ tập dữ liệu này bố cục, tìm các nút chọn và thiết lập trình nghe thay đổi cho mỗi nút, như sau:

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

Trong ví dụ này, khi người dùng nhấn vào một trong các nút chọn, một thông báo bản in trong Logcat.