public boolean isCheck(){
return cb_box.isChecked();
}
// 设置是否选中 点击条目一次调用一次此方法
public void setCheck(boolean isCheck){
cb_box.setChecked(isCheck);
if(isCheck){
tv_des.setText("自动更新已开启");
}else{
tv_des.setText("自动更新已关闭");
}
}
private void initUpdate() {
final SettingItemView sivUpdate = (SettingItemView) findViewById(R.id.siv_update);
// 设置点击事件
sivUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 逻辑思路 如果之前选中点击过后为未选中 如果之前为未选中点击过后为选中
boolean isCheck = sivUpdate.isCheck();
//取反
sivUpdate.setCheck(!isCheck);
}
});
/*出现bug 点击checkBox时事件不响应
原因SettingItemView 为View控件 有点击事件 作用于整个View 而checkBox也有点击事件
作用于自身 当点击checkBook时会相应自身的 而不响应父控件的事件
settingActivity 对应根部局获得点击事件->settingItemView
settingItemView 传递给 1 非checkBox区域 2 checkBox取区域
当checkBox响应此事件(事件就会被他消费掉 事件就不会回传了) SettingItemView就不能响应此事件
如果check不响应事件 事件就会回传给父控件
解决思路:
传给他阻止其消费
1 阻止子空间消费事件 回传给父控件 (父控件想要执行某方法时)
<CheckBox
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
2
不传给子空间 重写传递事件的方法
*/
网友评论