在Android中,CompoundButton是一个复合按钮的基类,它可以同时显示文本和图像,并且可以切换状态(选中/未选中)。CompoundButton有三个主要的子类:CheckBox、RadioButton和Switch。
下面是一些使用CompoundButton的示例:
1. 使用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 {
// 复选框未选中
}
}
});
```
2. 使用RadioButton(单选按钮):
```
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 1" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Option 2" />
```
在代码中获取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被选中
}
}
});
```
3. 使用Switch(开关按钮):
```
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的基本用法,你可以根据自己的需求对其进行进一步的定制和扩展。