Android(安卓)CheckBox控件使用OnClickListener和OnCheckedChangeListener两种不同的方法监听
16lz
2021-12-04
Android中CheckBox控件使用可以通过两种方法实现
1、OnClickListener
2、OnCheckedChangeListener
布局文件
控制文件
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);}}}}
更多相关文章
- Android(安卓)基本控件
- Android下拉刷新控件
- android之AutoCompleteTextView控件用法
- Android实现自动点击 - 无障碍服务
- 点击事件必须点两次才能生效的原因
- 迈向Android的第一步 - 搭建Android开发环境
- Android(安卓)编程下 Touch 事件的分发和消费机制
- 仿照利用android系统源码资源文件,修改SeekBar颜色 前景与背景
- 控件属性: