checkbox扩大点击范围以及一个监听器处理多个点击事件

本文介绍了一种通过监听父容器来间接控制子Checkbox状态的方法,并展示了如何在ListView中更新CheckBox的状态及数据源。提供了两种实现方式的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.现在不用在checkbox的id上面去监听点击直接在它的父类regist_showpassword_li监听

2.程序中控制checkbox的点击id添加一个点击的标识

 private int showPwdSign = -1; // 标识用于记住密码扩大checkbox点击范围 -1代表没有点击1代表点击


regist_showpassword=(CheckBox)findViewById(R.id.regist_showpassword);

regist_showpassword_li = (LinearLayout)findViewById(R.id.regist_showpassword_li);

 regist_showpassword_li.setOnClickListener(commonClickListener);

方法一:

//这是的处理一个监听器处理多个监听事件

private OnClickListener commonClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.regist_showpassword_li:
if (showPwdSign == -1) {
showPwdSign =1;
regist_showpassword.setChecked(true);
regist_userpwd_et.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
regist_confirm_pwd_et.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
}else {
showPwdSign =-1;
regist_showpassword.setChecked(false);
regist_userpwd_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
regist_confirm_pwd_et.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
break;
default:
break;
}
}
};


<!-- 布局文件样式-->

<LinearLayout
   android:id="@+id/regist_showpassword_li
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentLeft="true"
           android:gravity="center_vertical"
           android:orientation="horizontal">
      <CheckBox
           android:id="@+id/regist_showpassword"
           android:layout_width="15dp"
           android:layout_height="15dp"
           android:button="@null"
           android:checked="false"
           android:background="@drawable/member_register_showpwd_checkbox_selector"/>
      <TextView
       android:id="@+id/text1"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_marginLeft="7dp"
           android:text="@string/member_register_show_pwd_tv"
           android:textColor="#9f9f9f"
           android:textSize="12sp" />
</LinearLayout>



//方法二:

直接获得复选框的是否点击的判断条件,获得listView中的wareid 直接改变数据源,最后在finish中的保存xml文件


private OnClickListener shopcar_item_checkbox_ll_click_lis = new OnClickListener() {
@Override
public void onClick(View v) {
int index = Integer.parseInt(String.valueOf(v.getTag()));
CheckBox btnAdd = (CheckBox) v.findViewById(R.id.shopcar_item_checkbox);
if (btnAdd.isChecked()) {
btnAdd.setChecked(false);
productList.get(index).put("submit_sign", "false");
}else {
btnAdd.setChecked(true);
productList.get(index).put("submit_sign", "true");
}
CommonConstant.SHOPCAR_LIST = productList;
}
};



@Override
protected void onDestroy() {
//销毁的时候写入一次xml文件
FileUtil.xmlWriter(context, "", "", CommonConstant.SHOPCAR_LIST);
super.onDestroy();
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值