问题的提出:

Android手机卫士(十六):事件传递&响应规则

前面的文章实现了点击SettingItemView条目的时候,相应的TextView文字改变,但是选择自定义控件SettingItemView中的checkbox的时候,则相应的TextView文字没有改变

这里需要了解事件传递过程

SettingActivity对应布局文件的跟布局获取点击事件,此事件传递给SettingItemView

1.点击在SettingItemView非CheckBox区域,事件就由SettingItemView去做响应

2.点击在SettingItemView中CheckBox区域,事件就由SettingItemView传递给CheckBox,由CheckBox去做响应

CheckBox响应当前的点击事件,则SettingItemView就不能再去响应此事件,不能调用onClick方法,去改变状态

解决此问题的方案为:不让checkBox响应点击事件即可

XML/HTML代码
  1. <!--  
  2.   android:clickable="false"  
  3.     android:focusable="false"  
  4.     android:focusableInTouchMode="false"  
  5.     让当前的 CheckBox不能被点击,即不能响应事件   -->  
  6.   
  7. <CheckBox  
  8.     android:id="@+id/cb_box"  
  9.     android:layout_width="wrap_content"  
  10.     android:layout_height="wrap_content"  
  11.     android:layout_alignParentRight="true"  
  12.     android:layout_centerVertical="true"  
  13.     android:clickable="false"  
  14.     android:focusable="false"  
  15.     android:focusableInTouchMode="false" />  
本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/example/691.html
2017年7月10日
发布:鸡啄米 分类:Android开发实例 浏览: 评论:0