Android 手機衛士--事件傳遞&響應規則,android衛士--傳遞
問題的提出:
本文地址: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" />