发布时间:2025-12-09 13:48:11 浏览次数:4
具有两个状态的按钮,已选中或未选中。当按下或点击按钮时,状态会自动更改。
相比较Button而言多出了一个监听事件(接口)
当复合按钮的检查状态发生变化时调用。
实现方法:onCheckedChanged( CompoundButton buttonView,boolean isChecked)
简单介绍几个常用的
复选框:可以选中或取消选中的特定类型的双状态按钮。
例:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <CheckBox android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/meat" android:onClick="onCheckboxClicked"/> <CheckBox android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cheese" android:onClick="onCheckboxClicked"/></LinearLayout>public void onCheckboxClicked(View view) { // Is the view now checked? boolean checked = ((CheckBox) view).isChecked(); // Check which checkbox was clicked switch(view.getId()) { case R.id.checkbox_meat: if (checked) // Put some meat on the sandwich else // Remove the meat break; case R.id.checkbox_cheese: if (checked) // Cheese me else // I'm lactose intolerant break; // TODO: Veggie sandwich }}public class MyActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.content_layout_id); final CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox_id); if (checkBox.isChecked()) { checkBox.setChecked(false); } } }注:AppCompatCheckBox作为其子类用法差别不大!
单选按钮:是可以选中或取消选中的双状态按钮。当单选按钮被取消选中时,用户可以单击来选中它。
<?xml version="1.0" encoding="utf-8"?><RadioGroup xmlns:andro android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/pirates" android:onClick="onRadioButtonClicked"/> <RadioButton android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/ninjas" android:onClick="onRadioButtonClicked"/></RadioGroup>public void onRadioButtonClicked(View view) { // Is the button now checked? boolean checked = ((RadioButton) view).isChecked(); // Check which radio button was clicked switch(view.getId()) { case R.id.radio_pirates: if (checked) // Pirates are the best break; case R.id.radio_ninjas: if (checked) // Ninjas rule break; }}注:AppCompatRadioButton作为其子类用法差别不大!
开关:是一个双状态切换开关小部件,可以在两个选项之间进行选择。用户可以来回拖动“拇指”来选择所选择的选项,或者只需轻按以切换,就像复选框一样。该text 属性控制交换机标签中显示的文本,而 文本off和on文本控制拇指上的文本。
| xml属性 | 公共方法 | 作用效果 |
|---|---|---|
| android:showText | setShowText(boolean) | 是否显示 打开/关闭 文本 |
| android:textOff | setTextOff(CharSequence) | 当开关处于 关闭 状态时使用的文本 |
| android:textOn | setTextOn(CharSequence) | 当开关在 开打 状态时使用的文本 |
| android:track | setTrackResource(int) | 开关拇指滑动的“轨迹” |
显示 打开/关闭 的状态的按钮,默认情况下伴随文本“ON”或“OFF”。
与Switch差别不大!
知识不够用?
http://android.xsoftlab.net/reference/android/widget/CompoundButton.html