AndroidのCompoundButtonの使用方法

Androidでは、CompoundButtonは同時にテキストと画像を表示でき、状態(選択/未選択)を切り替えることができる複合ボタンの基底クラスです。CompoundButtonにはCheckBox、RadioButton、Switchという3つの主なサブクラスがあります。

CompoundButtonの使用例の一部を以下に示します。

  1. チェックボックスを使う:
<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 {
// 复选框未选中
}
}
});
  1. 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被选中
}
}
});
  1. スイッチ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の基本的な使用方法を上で述べましたが、必要に応じてカスタマイズや拡張することができます。

bannerAds