관리 메뉴

moozi

[ 안드로이드 개발 2.0 ] 폼 구성요소( Form Stuff )4 - RadioButton 본문

안드로이드개발강좌

[ 안드로이드 개발 2.0 ] 폼 구성요소( Form Stuff )4 - RadioButton

moozi 2010. 1. 7. 17:08

폼 구성요소( Form Stuff ) 중 RadioButton은 여러 항목중 한 개만을 선택할 때 주로 사용합니다.

안드로이드 개발자 사이트의 내용을 토대로 살펴보겠습니다

1. 이클립스에서 다음과 같이 프로젝트를 생성합니다.


2. 왼쪽 프로젝트 탐색기에서 res -> layout -> main.xml 을 열어서 다음 코드를 덮어 씁니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<RadioGroup
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="vertical">
 
  <RadioButton android:id="@+id/radio_red"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Red" />
 
  <RadioButton android:id="@+id/radio_blue"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Blue" />
 
</RadioGroup>
</LinearLayout>

위 코드에서 RadioButton 두 개가 하나의 RadioGroup에 속해 있음을 볼 수 있습니다. 같은 RadioGroup에 속한 RadioButton들은 그 중에서 하나만 선택이 가능합니다.

3. 왼쪽 프로젝트탐색기에서 src -> my.HelloFormStuff4 -> HelloFormStuff4.java 를 열어서 다음 코드를 덮어 씁니다.

package my.HelloFormStuff4;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioButton;
import android.widget.Toast;

public class HelloFormStuff4 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final RadioButton radio_red = (RadioButton) findViewById(R.id.radio_red);
        final RadioButton radio_blue = (RadioButton) findViewById(R.id.radio_blue);
        radio_red.setOnClickListener(radio_listener);
        radio_blue.setOnClickListener(radio_listener);
    }
   
    OnClickListener radio_listener = new OnClickListener() {
        public void onClick(View v) {
            // Perform action on clicks
            RadioButton rb = (RadioButton) v;
            Toast.makeText(HelloFormStuff4.this, rb.getText(), Toast.LENGTH_SHORT).show();
        }
    };
}

코드를 보면

radio_red.setOnClickListener(radio_listener);
radio_blue.setOnClickListener(radio_listener);

위 코드에서 두 개의 라디오버튼이 클릭 될 때마다 radio_listener를 사용하고 있습니다.

Toast.makeText(HelloFormStuff4.this, rb.getText(), Toast.LENGTH_SHORT).show();

위 코드에서 메세지를 출력할 때 rb.getText() 를 사용해서 main.xml에 정의된 라디오 버튼의 text 값을 출력하고 있습니다.

다음은 실행 결과입니다.


Red 라디오버튼을 클릭하면 아랫쪽에 Red 문자가 출력됩니다. 반대로 Blue 라디오버튼을 클릭하면 아랫쪽에 Blue 문자가 출력됩니다.

다음은 main.xml을 약간 수정한 코드와 실행 결과 입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<RadioGroup
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal">
 
  <RadioButton android:id="@+id/radio_red"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="" />
 
  <RadioButton android:id="@+id/radio_blue"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="" />
 
</RadioGroup>
</LinearLayout>

굵게 표시된 부분을 보면, android:orientation="horizontal" 로 변경하고, 라디오버튼의 text를 android:text="" ,android:text="" 로 바꾸어 보았습니다.

실행결과입니다.





 
Comments