文档章节

android 多选按钮CheckBox的使用

Sadhu
 Sadhu
发布于 2015/02/12 14:38
字数 584
阅读 2291
收藏 0
<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)。

© 著作权归作者所有

Sadhu
粉丝 1
博文 39
码字总数 11020
作品 0
武汉
程序员
私信 提问
Android CheckBox

CheckBox是多选方框,具有选中和未选中两种状态,他不像单选按钮在一个组中只能选择一个,而checkBox我们一次可以选中多个多选按钮! CheckBox相应的属性及方法: 默认选中:android:checked...

amigos_wu
2012/05/23
6K
0
Android Studio教程06-布局,监听器以及基本控件

目录 2. 监听器 3. 布局 3.1. 布局分类 4. 其他比较杂的内容 4.1. 距离单位的区别px,dp,sp 4.2. 控件的外边距和内边距 5. Android控件 5.1.多选按钮CheckBox 2. 常用和监听器 2. 监听器 一个...

Bricker666
01/17
0
0
Listview中checkBoxe的多选

注意点:Listview的item中存在checkBox , radiobutton,会导致ListView.setOnItemClickListener无效。 原因: 事件会被子View捕获到,ListView无法捕获处理该事件。 解决方法:在子view的xml...

新根
2015/08/03
134
0
Android组件(二)

RadioGroup:这个类用于创建一组按钮之间相互排斥的单选按钮组,在同一个单选按钮组中勾选一个按钮则会取消改组中其它已经勾选的状态。 以上图为例,其xml代码如下: 其Java代码如下: packag...

晨曦之光
2012/05/16
103
0
Android 第十课——UI RadioButton

常用基础空组件 5 RadioGroup RadioButton 单选按钮时常用组件之一,但是开发过程中虽然很多地方会用到单选按钮,但是却不会用Android系统提供的原始样式,类似我们在写html时,不同的浏览器...

learn_more
2015/01/06
320
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
5
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部