在Android中,CompoundButton是一個復合按鈕的基類,它可以同時顯示文本和圖像,并且可以切換狀態(選中/未選中)。CompoundButton有三個主要的子類:CheckBox、RadioButton和Switch。
下面是一些使用CompoundButton的示例:
<CheckBox
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check me" />
在代碼中獲取CheckBox的引用,并監聽其狀態變化:
CheckBox checkBox = findViewById(R.id.checkBox);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 處理狀態變化事件
if (isChecked) {
// 復選框被選中
} else {
// 復選框未選中
}
}
});
<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被選中
}
}
});
<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的基本用法,你可以根據自己的需求對其進行進一步的定制和擴展。