AndroidのCompoundButtonの使用方法
Androidでは、CompoundButtonは同時にテキストと画像を表示でき、状態(選択/未選択)を切り替えることができる複合ボタンの基底クラスです。CompoundButtonにはCheckBox、RadioButton、Switchという3つの主なサブクラスがあります。
CompoundButtonの使用例の一部を以下に示します。
- チェックボックスを使う:
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check me" />
コード内でチェックボックスの参照を取得し、その状態変化をモニタする
CheckBox checkBox = findViewById(R.id.checkBox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 处理状态变化事件
if (isChecked) {
// 复选框被选中
} else {
// 复选框未选中
}
}
});
- RadioButton(ラジオボタン)を使用する:
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
<RadioButton
android:id="@+id/radioButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 2" />
</RadioGroup>
コードにRadioGroupのリファレンスを取得し、選択されたRadioButtonをリッスンする。
RadioGroup radioGroup = findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// 处理选中的RadioButton变化事件
if (checkedId == R.id.radioButton1) {
// Option 1被选中
} else if (checkedId == R.id.radioButton2) {
// Option 2被选中
}
}
});
- スイッチON
<Switch
android:id="@+id/switchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch me" />
Switchの参照をコードで取得して、ステータス変更を監視する
Switch switchButton = findViewById(R.id.switchButton);
switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 处理状态变化事件
if (isChecked) {
// Switch被打开
} else {
// Switch被关闭
}
}
});
CompoundButtonの基本的な使用方法を上で述べましたが、必要に応じてカスタマイズや拡張することができます。