1、多選按鈕(CheckBox)的基本概念
2、<CheckBox/>與CheckBox
3、OnClickListener與OnClickedChangeListener監聽器
package com.huan.security.securityapp;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
public class MainActivity extends AppCompatActivity {
private CheckBox eatBox;
private CheckBox sleepBox;
private CheckBox dotaBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
eatBox=(CheckBox)findViewById(R.id.eatId);
sleepBox=(CheckBox)findViewById(R.id.sleepId);
dotaBox=(CheckBox)findViewById(R.id.dotaId);
OnBoxClickListener listener=new OnBoxClickListener();
eatBox.setOnClickListener(listener);
sleepBox.setOnClickListener(listener);
dotaBox.setOnClickListener(listener);
}
//OnClickListener使用方法
class OnBoxClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {//就是checkbox對象,是可以向上轉型爲view
//view.getId();//控件得ID;
/*
System.out.println("id------>"+view.getId());
if(view.getId()==R.id.eatId){
System.out.println("eatBox");
}
else if (view.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (view.getId()==R.id.dotaId){
System.out.println("doatId");
}
*/
CheckBox box=(CheckBox)view;
if(box.getId()==R.id.eatId){
System.out.println("eatId");
}
else if (box.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (box.getId()==R.id.dotaId){
System.out.println("dotaId");
}
if(box.isChecked()){
System.out.println("checked");
}
else{
System.out.println("unchecked");
}
System.out.println("Checkbox is clicked");
}
}
}
package com.huan.security.securityapp;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
public class MainActivity extends AppCompatActivity {
private CheckBox eatBox;
private CheckBox sleepBox;
private CheckBox dotaBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
eatBox=(CheckBox)findViewById(R.id.eatId);
sleepBox=(CheckBox)findViewById(R.id.sleepId);
dotaBox=(CheckBox)findViewById(R.id.dotaId);
CheckBoxListener listener=new CheckBoxListener();
eatBox.setOnCheckedChangeListener(listener);
sleepBox.setOnCheckedChangeListener(listener);
dotaBox.setOnCheckedChangeListener(listener);
}
class CheckBoxListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {//CompoundButton是checkbox的父類,onCheckedChanged爲checkbox設計的,當選中與被選中狀態改變時,會調用。
if(compoundButton.getId()==R.id.eatId){
System.out.println("eatId");
}
else if (compoundButton.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (compoundButton.getId()==R.id.dotaId){
System.out.println("dotaId");
}
if(b){
System.out.println("checked");
}
else{
System.out.println("uncheck");
}
}
}
class OnBoxClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {//就是checkbox對象,是可以向上轉型爲view
//view.getId();//控件得ID;
/*
System.out.println("id------>"+view.getId());
if(view.getId()==R.id.eatId){
System.out.println("eatBox");
}
else if (view.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (view.getId()==R.id.dotaId){
System.out.println("doatId");
}
*/
CheckBox box=(CheckBox)view;
if(box.getId()==R.id.eatId){
System.out.println("eatId");
}
else if (box.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (box.getId()==R.id.dotaId){
System.out.println("dotaId");
}
if(box.isChecked()){
System.out.println("checked");
}
else{
System.out.println("unchecked");
}
System.out.println("Checkbox is clicked");
}
}
}
多選按鈕全選和全取消簡單實現:
package com.huan.security.securityapp;
import android.provider.Settings;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
public class MainActivity extends AppCompatActivity {
private CheckBox eatBox;
private CheckBox sleepBox;
private CheckBox dotaBox;
private CheckBox allBox;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
eatBox=(CheckBox)findViewById(R.id.eatId);
sleepBox=(CheckBox)findViewById(R.id.sleepId);
dotaBox=(CheckBox)findViewById(R.id.dotaId);
allBox=(CheckBox)findViewById(R.id.allbox);
CheckBoxListener listener=new CheckBoxListener();
allBox.setOnCheckedChangeListener(listener);
}
class CheckBoxListener implements CompoundButton.OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {//CompoundButton是checkbox的父類,onCheckedChanged爲checkbox設計的,當選中與被選中狀態改變時,會調用。
eatBox.setChecked(b);
sleepBox.setChecked(b);
dotaBox.setChecked(b);
}
}
class OnBoxClickListener implements View.OnClickListener{
@Override
public void onClick(View view) {//就是checkbox對象,是可以向上轉型爲view
//view.getId();//控件得ID;
/*
System.out.println("id------>"+view.getId());
if(view.getId()==R.id.eatId){
System.out.println("eatBox");
}
else if (view.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (view.getId()==R.id.dotaId){
System.out.println("doatId");
}
*/
CheckBox box=(CheckBox)view;
if(box.getId()==R.id.eatId){
System.out.println("eatId");
}
else if (box.getId()==R.id.sleepId){
System.out.println("sleepId");
}
else if (box.getId()==R.id.dotaId){
System.out.println("dotaId");
}
if(box.isChecked()){
System.out.println("checked");
}
else{
System.out.println("unchecked");
}
System.out.println("Checkbox is clicked");
}
}
}
展示: