main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/LinearLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >
<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/playDotaId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="打dota" /> <CheckBox android:id="@+id/allCheckId" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="全选" /> </LinearLayout>
MainActivity.java:
package com.example.allchecked; import android.os.Bundle; import android.app.Activity; import android.view.Menu; 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 eatBox; private CheckBox sleepBox; private CheckBox playDotaBox; private CheckBox allCheckBox; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); eatBox = (CheckBox)findViewById(R.id.eatId); sleepBox = (CheckBox)findViewById(R.id.sleepId); playDotaBox = (CheckBox)findViewById(R.id.playDotaId); allCheckBox = (CheckBox)findViewById(R.id.allCheckId); AllCheckListener allCheckListener = new AllCheckListener(); allCheckBox.setOnCheckedChangeListener(allCheckListener); CheckBoxListener listener = new CheckBoxListener(); eatBox.setOnCheckedChangeListener(listener); sleepBox.setOnCheckedChangeListener(listener); playDotaBox.setOnCheckedChangeListener(listener); /* OnBoxClickListener clicklistener = new OnBoxClickListener(); eatBox.setOnClickListener(clicklistener); sleepBox.setOnClickListener(clicklistener); playDotaBox.setOnClickListener(clicklistener); */ } /* class OnBoxClickListener implements OnClickListener{ @Override public void onClick(View view) { // TODO Auto-generated method stub 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{ System.out.println("dotaBox"); } if(box.isChecked()){ System.out.println("checked"); } else{ System.out.println("unchecked"); } } }*/ public class CheckBoxListener implements OnCheckedChangeListener{ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(buttonView.getId() == R.id.eatId){ System.out.println("eatBox"); } else if(buttonView.getId() == R.id.sleepId){ System.out.println("sleepBox"); } else{ System.out.println("dotaBox"); } if(isChecked){ System.out.println("checked"); } else{ System.out.println("unchecked"); } } } public class AllCheckListener implements OnCheckedChangeListener{ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub eatBox.setChecked(isChecked); sleepBox.setChecked(isChecked); playDotaBox.setChecked(isChecked); } } }
全选按钮的功能还不是很完善,选中上面三个所有,全选按钮不会自动被选中;同时点击全选之后,点击上面某一个不再选中,全选不会自动取消选中。