본문 바로가기

프로그래밍/안드로이드

[안드로이드] 라디오 버튼(Radio Button)


라디오버튼은 선택 가능한 여러 개의 값 중 하나를 입력받을 때 사용한다.


<출처 : www.java2s.com>


라디오 버튼의 체크 상태를 변경할 때는 다음 메서드를 사용한다.


void check(int id)

  // 선택할 라디오 버튼의 id를 check 메서드로 전달하면 그룹내 나머지 버튼은 모두 선택 해제된다.

 // (-1)를 호출하면 모든 버튼의 선택이 해제외며, clearCheck 메서드와 같아진다.

void clearCheck()

 // 모든 라디오 버튼의 체크 버튼을 해제함.

int getCheckedRadioButtonId()

 // 특정 라디오 버튼을 선택한 채로 초기화




레이아웃을 먼저
생각해보면 라디오버튼 3개와 체크박스 1개, 토글버튼 1개로 이루어져 있다.


public class ExerciseExam extends AppCompatActivity {

TextView mSample;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_excercise_exam);

mSample = (TextView)findViewById(R.id.txtsample);

RadioGroup ColGroup = (RadioGroup)findViewById(R.id.colorgroup);
ColGroup.setOnCheckedChangeListener(mRadioCheck);

CheckBox chkWhite = (CheckBox)findViewById(R.id.chkwhiteback);
chkWhite.setOnCheckedChangeListener(mCheckChange);

ToggleButton tgLang = (ToggleButton)findViewById(R.id.tglanguage);
tgLang.setOnCheckedChangeListener(mCheckChange);
}

RadioGroup.OnCheckedChangeListener mRadioCheck =
new RadioGroup.OnCheckedChangeListener(){
public void onCheckedChanged(RadioGroup group, int checkedId){
if (group.getId() == R.id.colorgroup){
switch (checkedId){
case R.id.rared:
mSample.setTextColor(Color.RED);
break;
case R.id.ragreen:
mSample.setTextColor(Color.GREEN);
break;
case R.id.rablue:
mSample.setTextColor(Color.BLUE);
break;
}
}
}
};

CompoundButton.OnCheckedChangeListener mCheckChange =
new CompoundButton.OnCheckedChangeListener(){
public void onCheckedChanged (CompoundButton buttonView, boolean isChecked){
if (buttonView.getId()==R.id.chkwhiteback){
if(isChecked){
mSample.setBackgroundColor(Color.WHITE);
} else{
mSample.setBackgroundColor(Color.TRANSPARENT);
}
}
if (buttonView.getId() == R.id.tglanguage){
if(isChecked){
mSample.setText("샘플");
} else{
mSample.setText("Sample");
}
}
}
};
}



<xml>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:id="@+id/txtsample"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="32sp"
android:textColor="#ff0000"
android:text="Sample" />
<RadioGroup
android:id="@+id/colorgroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:checkedButton="@+id/rared"
>
<RadioButton
android:id="@id/rared"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Red"
/>
<RadioButton
android:id="@+id/ragreen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Green"
/>
<RadioButton
android:id="@+id/rablue"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Blue"
/>
</RadioGroup>
<CheckBox
android:id="@+id/chkwhiteback"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="흰색 배경"
/>
<ToggleButton
android:id="@+id/tglanguage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="한글"
android:textOff="영문"
/>
</LinearLayout>