android基本控件——RadioGroup和CheckBox
区别和相似
RadioGroup | CheckBox |
---|---|
选中后,通过点击无法变为未选中 | 选中后,通过点击可以变为未选中 |
在一组中,只能同时选中一个 | 在一组中,只能同时选中多个 |
大部分UI框架中,默认圆形表示 | 大部分UI框架中,默认框型表示 |
控件的属性
RadioGroup
(1)orientation:排列方式
若值为horizontal,则为横向,水平排列:
(2)checkedButton:默认选中
直接调用已经放入在radiogroup中且已有id的radiobutton即可默认选中此项。
android:checkedButton="@id/rb_male"
(3)android:drawableTop 属性是用来将指定的图片显示到RadioButton的顶部,为了方便我们下面放文字.做成有图案的菜单选项。
android:drawableTop="@drawable/bottom_icon_iamge_selector_xiaoxi"
在drawble文件中新建一个xml文件
android:drawable="@mipmap/xiaoxi_unchecked"对应于图片
android:state_checked=“false” 对应于该控件的状态
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/xiaoxi_unchecked" android:state_checked="false"></item>
<item android:drawable="@mipmap/xiaoxi_selected" android:state_checked="true"></item>
</selector>
Radiobutton
(1)checked:选中状态
若为true则默认被选中,false则默认不被选中。
(2)button:按钮属性
若button的值设为“@null”则不显示前面的圆形按钮,只显示 文本内容本身
CheckBox
(1)checked:选中状态
若为true则默认被选中,false则默认不被选中。
(2)button:按钮属性
若button的值设为“@null”则不显示前面的圆形按钮,只显示 文本内容本身
方法的调用
1.RadioGroup.getCheckedRadioButtonId();
该方法可以获取选中的按钮
2.RadioGroup.clearCheck();
该方法可以清除选中状态
3.setOnCheckedChangeLintener(RadioGroup.OnCheckedChangeListener listener);
当一个单选按钮组中的单选按钮选中状态发生改变的时候调用的回调方法
方式一
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {
switch (checkedId){
case R.id.rb_female:
toastShow("女的");
break;
case R.id.rb_male:
toastShow("男的");
}
}
});
方式二
类名实现接口
MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener
RadioGroup radioGroup = (RadioGroup) findViewById(R.id.rg);
//设置状态改变的事件
radioGroup.setOnCheckedChangeListener(this);
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//根据不同ID 弹出不同的吐司
switch (group.getCheckedRadioButtonId()){
case R.id.radioButton_xiaoxi:
Toast.makeText(this, "你点击了“消息”按钮", Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton_lianxiren:
Toast.makeText(this, "你点击了“联系人”按钮", Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton_dongtai:
Toast.makeText(this, "你点击了“动态”按钮", Toast.LENGTH_SHORT).show();
break;
}
}
4.RadioGroup.check(int id);
该方法可以通过传入ID来设置该选项为选中状态5
5.RadioButton.getText();
获取单选框的值
6.CheckBox.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener
liistener)
监听选中状态。
基本上是一个box一个响应。
cb_car.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked){
toastShow("有车");
}else {
toastShow("无车");
}
}
});