Francis学习笔记三
1.Radio和CheckBox区别;
2.RadioButton和RadioGroup的关系;
3.事件监听设置相关浅析;
4.CheckBox绑定事件的简单办法。
一、RadioButton和CheckBox的区别:
1、单个RadioButton在选中后,通过点击无法变为未选中
单个CheckBox在选中后,通过点击可以变为未选中
2、一组RadioButton,只能同时选中一个
一组CheckBox,能同时选中多个
3、RadioButton在大部分UI框架中默认都以圆形表示
CheckBox在大部分UI框架中默认都以矩形表示
二、RadioButton和RadioGroup的关系:
1、RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器
2、每个RadioGroup中的RadioButton同时只能有一个被选中
3、不同的RadioGroup中的RadioButton互不相干,即如果组A中有一个选中了,组B中依然可以有一个被选中
4、一般情况下,一个RadioGroup中至少有2个RadioButton
5、一般情况下,一个RadioGroup中的RadioButton默认会有一个被选中,并建议您将它放在RadioGroup中的起始位置
三、事件监听设置相关浅析
1.RadioGroup事件绑定
<span style="font-family:KaiTi_GB2312;font-size:24px;">RadioGroup rG = (RadioGroup) findViewById(R.id.radioGroup);
rG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
}
});</span>
2.CheckBox事件绑定
<span style="font-family:KaiTi_GB2312;font-size:24px;">CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox);
CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkbox1);
checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
});
</span>
四、CheckBox绑定事件的简单办法:
从上面可以看出CheckBox必须进行多次绑定,而RadioGroup只需要绑定一次即可。
如果有多个CheckBox进行如上操作,会显得代码繁琐,故此推荐使用非匿名类写法,代码量会相对少点;对于以后类似问题,判断使用匿名类还是正规写法,需要有一个清晰的认识和了解,免得代码繁琐。
对上述CheckBox事件绑定改进代码如下:
<span style="font-family:KaiTi_GB2312;font-size:24px;">CheckBox checkBox = (CheckBox) findViewById(R.id.checkbox);
CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkbox1);</span>
<pre name="code" class="java"><span style="font-family:KaiTi_GB2312;font-size:24px;">CheckBoxCheckListener cbcListener = new CheckBoxCheckListener();
checkBox.setOnCheckedChangeListener(cbcListener);
checkBox1.setOnCheckedChangeListener(cbcListener);</span>
</pre><span style="font-family:KaiTi_GB2312;font-size:24px;"></span><pre name="code" class="java"><span style="font-family:KaiTi_GB2312;font-size:24px;">class CheckBoxCheckListener implements CompoundButton.OnCheckedChangeListener {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
}
}</span>