安卓界面UI为开发者提供了单选复选框,单选框和复选框继承了安卓的普通按钮,所以他们可以直接使用普通按钮的xml基本属性。他们与普通按钮区别在于提供了可以选中的功能,同时二者之间的区别是:单选按钮在按钮组中,当用户点击选择以后,这个按钮组就必须有一个被选中,只能改选,无法撤销(所以单独的一个单选框功能上很尴尬,点击以后状态不能再更改,很僵硬);复选框可以提供复选功能,一组中可以多个被选中,并且能够全部撤销。
一 单选按钮属性
由于单选按钮直接继承了普通按钮,所以它可以使用普通按钮的所有属性,因此:xml属性就不介绍了,大家可以在eclipse当中操作一下。在组件使用上,一般推荐界面添加单选按钮组<RadioGroup>,之后可以向里面添加单个的<RadioButton>或是减少单选按钮。如下图:
单选按钮事件监听:1>由于单选按钮是包裹在<RadioGroup>中,我们可以对组件<RadioGroup>进行监听。
2><RadioGroup>里面的单选按钮作为独立的组件,都能够实现监听接口,实现监听。
代码举例:(<RadioGroup>和<RadioButton>各自实现监听)
/* *通过RadioGroup 进行监听,接口内部onCheckedChanged中实现我们需要的功能 */ RadioGroup sex = (RadioGroup)findViewById(R.id.radioGroup1); sex.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup1, int checkedid) { RadioButton r = (RadioButton)findViewById(checkedid); r.getText(); } }); /* *通过RadioButton 进行监听,查找所有的RadioButton 寻找选中的单选按钮 */ final RadioGroup sex = (RadioGroup)findViewById(R.id.radioGroup1); Button button = (Button)findViewById(R.id.button1); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { for(int i = 0;i < sex.getChildCount();i ++){ RadioButton r = (RadioButton)sex.getChildAt(i); if(r.isChecked()){ r.getText(); break; } } } });
二 复选框属性
复选框是Button子类,能够使用Button的属性。与单选按钮不同的是复选框能够进行多行设置,每个复选框能够单独的选中或取消选中状态。
由于单个复选框能够单独选中或是不选中,因此事件监听上要单独设置监听。
final CheckBox cb = (CheckBox)findViewById(R.id.checkBox1); cb.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isCheched) { if(cb.isChecked()){ cb.getText(); } } });
总结:水平有限,请留言批评指正!