체크박스 구현 예제가 대부분 단일 체크박스에 대한 부분만 있어서
두개 이상의 체크박스를 구현할 때 리스너 처리를 아래와 같이 xml에서 체크박스에 tag를 지정하여 처리한다
@@ xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:orientation="vertical">
<TableLayout android:id="@+id/TableLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TableRow>
<TextView android:id="@+id/sound_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:width="220dip" android:text="@string/sound_msg"></TextView>
<CheckBox android:id="@+id/sound_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/yes_msg" android:tag="77"></CheckBox>
</TableRow>
<TableRow>
<TextView android:id="@+id/init_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/init_msg"></TextView>
<CheckBox android:id="@+id/init_check" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/yes_msg" android:tag="33"></CheckBox>
</TableRow>
</TableLayout>
</LinearLayout>
@@java
public class checkBoxTest extends Activity implements CompoundButton.OnCheckedChangeListener {
CheckBox initBox;
CheckBox soundBox;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.option);
initBox = (CheckBox)findViewById(R.id.init_check);
initBox.setOnCheckedChangeListener(this);
}
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String targetBtn = (String)buttonView.getTag();
if(targetBtn.equals("33")){ // 초기화 박스 클릭 시
if (isChecked) {
//do something
}
}else{ // 사운드 박스 클릭 시
//do something
}
}
댓글 없음:
댓글 쓰기