问题的提出:
本文地址:http://www.cnblogs.com/wuyudong/p/5911187.html ,转载请注明源地址。
前面的文章实现了点击SettingItemView条目的时候,相应的TextView文字改变,但是选择自定义控件SettingItemView中的checkbox的时候,则相应的TextView文字没有改变
这里需要了解事件传递过程
SettingActivity对应布局文件的跟布局获取点击事件,此事件传递给SettingItemView
1.点击在SettingItemView非CheckBox区域,事件就由SettingItemView去做响应
2.点击在SettingItemView中CheckBox区域,事件就由SettingItemView传递给CheckBox,由CheckBox去做响应
CheckBox响应当前的点击事件,则SettingItemView就不能再去响应此事件,不能调用onClick方法,去改变状态
解决此问题的方案为:不让checkBox响应点击事件即可
<!-- android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" 让当前的 CheckBox不能被点击,即不能响应事件 --> <CheckBox android:id="@+id/cb_box" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" />