앱에 라디오 버튼 추가

Compose 방법 사용해 보기
Jetpack Compose는 Android에 권장되는 UI 도구 키트입니다. Compose에서 구성요소를 추가하는 방법을 알아봅니다.

라디오 버튼을 사용하면 사용자가 상호 배타적인 옵션 집합 중에서 하나의 옵션을 선택할 수 있습니다. 사용자가 사용 가능한 모든 옵션을 나열해야 하는 경우 라디오 버튼을 사용합니다. 모든 옵션을 표시할 필요가 없으면 스피너를 대신 사용하세요.

Material.io의 라디오 버튼 예
그림 1. Material Design의 라디오 버튼 예

각 라디오 버튼 옵션을 만들려면 레이아웃에서 RadioButton를 만듭니다. 라디오 버튼은 상호 배타적이므로 RadioGroup 내부에 그룹화합니다. 시스템은 그룹 내에서 한 번에 라디오 버튼을 하나만 선택할 수 있도록 합니다.

클릭 이벤트에 응답

사용자가 라디오 버튼을 선택하면 상응하는 RadioButton 객체가 클릭 시 이벤트를 수신합니다.

다음 예는 그룹에서 RadioButton 객체를 탭하는 사용자에 대한 반응을 보여줍니다.

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

이 레이아웃을 호스팅하는 Activity 또는 Fragment 내에서 다음과 같이 라디오 버튼을 찾아 각 버튼의 변경 리스너를 설정합니다.

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

이 예에서는 사용자가 라디오 버튼 중 하나를 탭하면 메시지가 Logcat에 출력됩니다.