본문 바로가기

프로그래밍/안드로이드

안드로이드 위젯 - CheckBox, RadioGroup, RadioButton

안드로이드 위젯 - CheckBox, RadioGroup, RadioButton

일반적인 체크박스는 체크상태와 체크되지 않은 상태 두 가지 상태를 유지할 수 있다. 체크 박스를 클릭하면 체크된 상태가 계속해서 변경된다. 

1. 체크박스

   - 안드로이드 SDK에는 체크 박스를 CheckBox 클래스에 구현

   - CheckBox 클래스 역시 TextView 클래스의 하위 클래스 이므로 android:textColor와 같이 TextView가 지원하는 속성을 모두 사용

 

   1.1 체크박스 메소드

        - isChecked() : 체크 박스가 현재 체크된 상태인지를 확인한다.

        - setChecked() : 체크 박스의 체크 상태를 직접 지정한다.

        - toggle() : 체크 박스의 체크 상태를 변경한다.

        - 리스너 객체 OnCheckedChangeListener를 등록하면 체크 박스 상태가 변경될 때마다 이벤트를 받아서 처리

2. 라디오 버튼

    다른 GUI 툴킷과 마찬가지로 안드로이드 SDK의 라디오 버튼 역시 체크 박스처럼 두 가지 상태를 가질 수 있고, 라디오 버튼 여러 개를 하나의 그룹으로 붂어 그룹 안에서는 한 번에 하나의 라디오 버튼만 선택할 수 있다.

 

     - RadioButton 클래스는 CompoundButton 클래스를 상속받았으며, 더 상위에서는 TextView 클래스를 상속 받고 있다.

     - TextView에서 지원하는 글꼴종류, 스타일, 색상 등의 다양한 속성을 라디오 버튼에서도 사용 가능

 

     2.1 라디오 버튼 사용

          . isChecked() 메소드를 호출해 선택된 상태인지 확인

          . toggle() 메서드를 호출하면 선택 상태를 변경

          . 라디오 버튼 사용시 여러 개의 RadioButton 인스턴스를 RadioGroup 인스턴스로 묶어 사용

          . RadioGroup 클래스는 여러 개의 RadioButton 클래스를 관리하면서 한 번에 하나의 RadioButton만 선택된 상태를 유지하도록 한다.

          . XML 레이아웃에서 RadioGroup 엘리먼트에 android:id 속성을 지정해 두면 자바코드에서 라디오 버튼값을 확인할 수 있다.

 

     2.2 메소스

          . check() 메소드 : 특정 ID의 라디오 버튼을 체크할 수 있다.

          . clearCheck() 메소드 : 특정 ID의 라디오 버튼의 체크 상태를 풀 수 있다.

          . getCheckedRadioButtonId() 메소드 : 현재 선택된 라디오 버튼 ID를 알아낼 수 있다.

 

     2.3 예제

  <?xml version="1.0" encoding="utf-8"?> 

         <RadioGroup

                xmlns:android="http://schemas.android.com/apk/res/android"

                android:orientation="vertical"

                android:layout_width="fill_parent"

                android:layout_height="fill_parent"

                >

                      <RadioButton android:id="@+id/radio1"

                             android:layout_width="wrap_content"

                             android:layout_height="wrap_content"

                             android:text="Rock" />

                     <RadioButton android:id="@+id/radio2"

                            android:layout_width="wrap_content"

                            android:layout_height="wrap_content" 

                            android:text="Scissors" />

                     <RadioButton android:id="@+id/radio3"

                           android:layout_width="wrap_content"

                           android:layout_height="wrap_content"

                           android:text="Paper" />

         </RadioGroup>


출처 : http://nopd.textcube.com/30