Android CheckBox控件使用OnClickListener和OnCheckedChangeListener两种不同的方法监听
16lz
2021-01-23
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下拉刷新控件
- Android系统设置选项的包名
- Android Studio安装app 报错的问题It is possible that this iss
- android之AutoCompleteTextView控件用法
- Google Maps API Key申请方法及地址
- android 笔记 --- Android Bitmap 建立或取得的方法
- Android自带Music播放器更新播放时间和进度条的方法