问题的提出:
前面的文章实现了点击SettingItemView条目的时候,相应的TextView文字改变,但是选择自定义控件SettingItemView中的checkbox的时候,则相应的TextView文字没有改变
这里需要了解事件传递过程
SettingActivity对应布局文件的跟布局获取点击事件,此事件传递给SettingItemView
1.点击在SettingItemView非CheckBox区域,事件就由SettingItemView去做响应
2.点击在SettingItemView中CheckBox区域,事件就由SettingItemView传递给CheckBox,由CheckBox去做响应
CheckBox响应当前的点击事件,则SettingItemView就不能再去响应此事件,不能调用onClick方法,去改变状态
解决此问题的方案为:不让checkBox响应点击事件即可
XML/HTML代码
- <!--
- 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" />
本文发布:Android开发网
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。