本文介绍CheckBox控件。下面的内容都是参考"CheckBox测试代码"进行的讲解,感兴趣的可以进行测试验证。
1. CheckBox基本使用
1.1 CheckBox的父类
下面是CheckBox的继承关系图
java.lang.Object
↳ android.view.View
↳ android.widget.TextView
↳ android.widget.Button
↳ android.widget.CompoundButton
↳ android.widget.CheckBox
从中,可以看出Button和CompoundButton都是CheckBox父类。这也就意味着,CheckBox同时具有它们的特性。监听CheckBox点击事件时,可以像Button一样实现View.OnClickListener接口;也可以像CompoundButton一样,实现CompoundButton.OnCheckedChangeListener接口。
1.2 CheckBox基本定义
<CheckBox android:id="@+id/cb_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cb_send" />
1.3 CheckBox事件的监听
CheckBox事件的监听,有两种方法:
第一种:实现View.OnClickListener接口。这个和监听Button的方式一样,它监听动作!
第二种:实现CompoundButton.OnCheckedChangeListener接口。这个和第一种方法的区别是,它是监听状态(监听按钮状态的变化),而第一种方法是监听动作(监听按钮的点击事件)。
下面给出的监听是通过实现CompoundButton.OnCheckedChangeListener接口来监听CheckBox。
CheckBox mSend = (CheckBox) findViewById(R.id.cb_send);
mSend.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mView.setText("selected!");
} else {
mView.setText("un-selected!");
}
}
});