Android中CheckBox控件使用可以通过两种方法实现
1、OnClickListener
2、OnCheckedChangeListener

布局文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <CheckBox        android:id="@+id/all_checkbox"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:text="全选" />        <CheckBox        android:id="@+id/first_checkbox"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:text="选项1" />    <CheckBox        android:id="@+id/secend_checkbox"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:text="选项2" />    <CheckBox        android:id="@+id/third_checkbox"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:text="选项3" />    <CheckBox        android:id="@+id/fourth_checkbox"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_margin="10dp"        android:text="选项4" /></LinearLayout>


控制文件
package com.geoffrey.practice_checkbox;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;public class MainActivity extends Activity {private CheckBox allCheckBox;private CheckBox firstCheckBox;private CheckBox secendCheckBox;private CheckBox thirdCheckBox;private CheckBox fourthCheckBox;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_checkbox);allCheckBox = (CheckBox) findViewById(R.id.all_checkbox);firstCheckBox = (CheckBox) findViewById(R.id.first_checkbox);secendCheckBox = (CheckBox) findViewById(R.id.secend_checkbox);thirdCheckBox = (CheckBox) findViewById(R.id.third_checkbox);fourthCheckBox = (CheckBox) findViewById(R.id.fourth_checkbox);// 给第一个和第二个CheckBox控件绑定OnCheckBoxClickListener方法OnCheckBoxClickListener listener = new OnCheckBoxClickListener();firstCheckBox.setOnClickListener(listener);secendCheckBox.setOnClickListener(listener);// 给第三个和第四个CheckBox控件绑定CheckBoxListener方法CheckBoxListener listener2 = new CheckBoxListener();thirdCheckBox.setOnCheckedChangeListener(listener2);fourthCheckBox.setOnCheckedChangeListener(listener2);// 全选,全部取消allCheckBox.setOnClickListener(listener);}// 内部类OnCheckBoxClickListener,使用OnClickListener方法监听class OnCheckBoxClickListener implements OnClickListener {@Overridepublic void onClick(View view) {CheckBox checkBox = (CheckBox) view;if (checkBox.getId() == R.id.first_checkbox) {System.out.println("点击第一个checkbox");} else if (checkBox.getId() == R.id.secend_checkbox) {System.out.println("点击第二个checkbox");}if (checkBox.isChecked()) {System.out.println("选中");if (checkBox.getId() == R.id.all_checkbox) {firstCheckBox.setChecked(true);secendCheckBox.setChecked(true);thirdCheckBox.setChecked(true);fourthCheckBox.setChecked(true);}} else {System.out.println("取消选中");allCheckBox.setChecked(false);if (checkBox.getId() == R.id.all_checkbox) {firstCheckBox.setChecked(false);secendCheckBox.setChecked(false);thirdCheckBox.setChecked(false);fourthCheckBox.setChecked(false);}}}}// 内部类CheckBoxListener,使用OnCheckedChangeListener方法监听class CheckBoxListener implements OnCheckedChangeListener {@Override/** * @param buttonView 点击选中的控件 * @param isChecked 是否选中状态 */public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {if (buttonView.getId() == R.id.third_checkbox) {System.out.println("点击第三个checkbox");} else if (buttonView.getId() == R.id.fourth_checkbox) {System.out.println("点击第四个checkbox");}if (isChecked) {System.out.println("选中");} else {System.out.println("取消选中");allCheckBox.setChecked(false);}}}}







更多相关文章

  1. Android(安卓)基本控件
  2. Android下拉刷新控件
  3. android之AutoCompleteTextView控件用法
  4. Android实现自动点击 - 无障碍服务
  5. 点击事件必须点两次才能生效的原因
  6. 迈向Android的第一步 - 搭建Android开发环境
  7. Android(安卓)编程下 Touch 事件的分发和消费机制
  8. 仿照利用android系统源码资源文件,修改SeekBar颜色 前景与背景
  9. 控件属性:

随机推荐

  1. 【mysql】ipv4地址转换为4字节整数
  2. 有关Apache dubbo反序列化漏洞的复现及思
  3. 【docker】docker其实很简单
  4. 【docker】容器运行nginx&&挂载宿主机文
  5. 【java】面试官问我,如何实现一个自定义序
  6. 【spring】别被一个FactoryBean问蒙了
  7. 使用docker安装elasticsearch,head插件,在e
  8. 【http】还在用postman?curl它不香吗
  9. 【Java】有关强引用、软引用、弱引用、虚
  10. cookie在二级域名间共享完成sso