android 多选按钮CheckBox的使用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context="com.sadhu.s01_e09_checkbox.MainActivity$PlaceholderFragment" > <CheckBox android:id="@+id/eatId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="吃饭" /> <CheckBox android:id="@+id/sleepId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="睡觉" /> <CheckBox android:id="@+id/dotaId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dota" /> <CheckBox android:id="@+id/allCheckedBox" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全选"></CheckBox> </LinearLayout>
package com.sadhu.s01_e09_checkbox; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.view.View.OnClickListener; public class MainActivity extends Activity { //定义三个变量 private CheckBox eatBox; private CheckBox sleepBox; private CheckBox dotaBox; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); //找到三个对象并赋值到相应的变量 eatBox = (CheckBox)findViewById(R.id.eatId); sleepBox = (CheckBox)findViewById(R.id.sleepId); dotaBox = (CheckBox)findViewById(R.id.dotaId); //选中状态发生改变后执行此监听器,两个参数,一个是对象,一个是是否选中。CompoundButton是CheckBox的超类 CheckBoxListener cbListener = new CheckBoxListener(); eatBox.setOnCheckedChangeListener(cbListener); sleepBox.setOnCheckedChangeListener(cbListener); dotaBox.setOnCheckedChangeListener(cbListener); //为全选按钮定义一个改变状态触发的监听器 ((CheckBox)findViewById(R.id.allCheckedBox)).setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton checkBox, boolean isChecked) { eatBox.setChecked(isChecked); sleepBox.setChecked(isChecked); dotaBox.setChecked(isChecked); } });; /* //实例化点击事件监听类 OnBoxClickListener onBoxClick = new OnBoxClickListener(); //为三个对象设置点击事件 eatBox.setOnClickListener(onBoxClick); sleepBox.setOnClickListener(onBoxClick); dotaBox.setOnClickListener(onBoxClick);*/ } //定义一个选中状态发生改变就会执行此类 class CheckBoxListener implements OnCheckedChangeListener { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(buttonView.getId()==R.id.eatId){ System.out.println("eatBox"); } else if(buttonView.getId()==R.id.sleepId){ System.out.println("sleepBox"); } else if(buttonView.getId()==R.id.dotaId) { System.out.println("dotaBox"); } if(isChecked) { System.out.println("checked"); } else { System.out.println("unchecked"); } } } //定义一个单击事件监听类 /* class OnBoxClickListener implements OnClickListener { @Override public void onClick(View view) { CheckBox box = (CheckBox)view; if(box.getId()==R.id.eatId) { System.out.println("eatBox"); } else if(box.getId()==R.id.sleepId) { System.out.println("sleepBox"); } else if(box.getId()==R.id.dotaId) { System.out.println("dotaBox"); } if(box.isChecked()) { System.out.println("checked"); } else { System.out.println("unchecked"); } } }*/ @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } } }
多选按钮CheckBox很简单,就是为用户提供多选功能,他有两个监听器,一个是单击(OnClickListener)控件触发的监听器,一个是按钮选中状态发生改变后执行的监听器(OnCheckedChangeListener)。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。