今儿个,咱来聊聊CompoundButton这个玩意儿。一开始看到这名字,我也懵圈,啥玩意儿这是?后来捣鼓一番,才算摸清点门道。
这玩意儿,说白,就是一个“能打”的按钮。但它自己不出手,因为它是个抽象的,得靠它的几个小弟来干活。就像那个CheckBox、Switch、RadioButton,这些都是它的小弟,听它指挥。
我一开始想直接用CompoundButton,结果发现不行,这大哥只管发号施令,不管具体干活。没办法,我只能找它的小弟们来帮忙。
我先是找来CheckBox,也就是复选框。这玩意儿大家伙儿都熟悉,就是那种可以打勾勾的小方框。我给它安排个任务,让它听我的,只要状态变,就告诉我一声。
实践出真知
下面是我捣鼓的过程,大伙儿可以看看:
我得在布局文件里头把CheckBox给安排上,给它个地儿待着。就像这样:
<CheckBox
android:id="@+id/my_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点我试试"/>
然后,我就在代码里头找到这个CheckBox,给它安排个“监听员”,盯着它的一举一动。这“监听员”就是OnCheckedChangeListener。
CheckBox checkBox = findViewById(*_checkbox);
*(new *() {

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// 这里头写上CheckBox状态变化后要做的事儿
if (isChecked) {
// 选中要干啥
*("你小子被选中!");

} else {
// 没选中要干啥
*("你小子没被选中!");

看看,就这么简单,CheckBox就被我安排得明明白白。只要它状态一变,是选中还是没选中,都会在控制台里告诉我。
然后我又试试Switch,就是那种滑动开关。跟CheckBox差不多,也是给它安排个“监听员”,盯着它的一举一动。只要它状态变,是开还是关,都会告诉我。
RadioButton,单选按钮,也是一样的道理。都能通过CompoundButton来设置。
CompoundButton这大哥,虽然自己不出手,但它能指挥它的小弟们干活,而且干得还挺以后再遇到这种需要监听按钮状态变化的需求,咱就知道该咋办。