布局文件xml
<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:orientation="vertical" >
<!-- android:checked="true" 默认的选择状态
-->
<CheckBox
android:id="@+id/cb_gf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:onClick="OnCheck"
android:text="古风" />
<CheckBox
android:id="@+id/cb_eat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="OnCheck"
android:text="吃饭" />
<CheckBox
android:id="@+id/cb_sleep"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="OnCheck"
android:text="睡觉" />
<CheckBox
android:id="@+id/cb_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="全选" />
</LinearLayout>
Java代码1
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.CheckBox;
import android.widget.Toast;
public class MainActivity extends Activity {
//声明控件
private CheckBox cb_gf,cb_eat,cb_sleep;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//通过findViewById找出 相应控件
cb_gf = (CheckBox) findViewById(R.id.cb_gf);
cb_eat = (CheckBox) findViewById(R.id.cb_eat);
cb_sleep = (CheckBox) findViewById(R.id.cb_sleep);
//设置checkbox状态改变的监听事件
// cb_gf.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
//
// //参数1:代表选择的控件 参数2:选择的一个状态
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// // TODO Auto-generated method stub
// if(isChecked){
// Toast.makeText(MainActivity.this, "古风...选中", Toast.LENGTH_SHORT).show();
// }else{
// Toast.makeText(MainActivity.this, "古风...没选中", Toast.LENGTH_SHORT).show();
// }
//
// }
// });
// cb_eat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
//
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// // TODO Auto-generated method stub
// if(isChecked){
// Toast.makeText(MainActivity.this, "吃饭...选中", Toast.LENGTH_SHORT).show();
// }else{
// Toast.makeText(MainActivity.this, "吃饭...没选中", Toast.LENGTH_SHORT).show();
// }
// }
// });
// cb_sleep.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
//
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// // TODO Auto-generated method stub
// if(isChecked){
// Toast.makeText(MainActivity.this, "睡觉...选中", Toast.LENGTH_SHORT).show();
// }else{
// Toast.makeText(MainActivity.this, "睡觉...没选中", Toast.LENGTH_SHORT).show();
// }
// }
// });
}
//checkBox 的点击事件
public void OnCheck(View v){
CheckBox cb = (CheckBox) v;//得到点击的按钮
boolean isChecked = cb.isChecked();//得到点击按钮的状态
switch (v.getId()) {
case R.id.cb_gf:
if(isChecked){
Toast.makeText(MainActivity.this, "古风...选中", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this, "古风...没选中", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
@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;
}
}
Java代码2
package com.qianfeng.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 SecondActivity extends Activity {
//声明控件
private CheckBox cb_gf,cb_eat,cb_sleep,cb_all;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main01);
//通过findViewById找出 相应控件
cb_gf = (CheckBox) findViewById(R.id.cb_gf);
cb_eat = (CheckBox) findViewById(R.id.cb_eat);
cb_sleep = (CheckBox) findViewById(R.id.cb_sleep);
cb_all = (CheckBox) findViewById(R.id.cb_all);
//状态改变的监听
cb_gf.setOnCheckedChangeListener(new MyChecked());
cb_eat.setOnCheckedChangeListener(new MyChecked());
cb_sleep.setOnCheckedChangeListener(new MyChecked());
// cb_all.setOnCheckedChangeListener(new MyChecked());
cb_all.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// //全选的checkBox如果选中 那么其余三项全部选中 否则全部取消
if(cb_all.isChecked()){
cb_gf.setChecked(true);
cb_eat.setChecked(true);
cb_sleep.setChecked(true);
}else{
cb_gf.setChecked(false);
cb_eat.setChecked(false);
cb_sleep.setChecked(false);
}
}
});
}
//内部成员
public class MyChecked implements OnCheckedChangeListener{
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
// TODO Auto-generated method stub
switch (buttonView.getId()) {
case R.id.cb_gf:
//如果 三项 全部选中的情况向 全选按钮也被选中
if(cb_gf.isChecked()&&cb_eat.isChecked()&&cb_sleep.isChecked()){
cb_all.setChecked(true);
}else{
cb_all.setChecked(false);
}
break;
case R.id.cb_eat:
//如果 三项 全部选中的情况向 全选按钮也被选中
if(cb_gf.isChecked()&&cb_eat.isChecked()&&cb_sleep.isChecked()){
cb_all.setChecked(true);
}else{
cb_all.setChecked(false);
}
break;
case R.id.cb_sleep:
//如果 三项 全部选中的情况向 全选按钮也被选中
if(cb_gf.isChecked()&&cb_eat.isChecked()&&cb_sleep.isChecked()){
cb_all.setChecked(true);
}else{
cb_all.setChecked(false);
}
break;
// case R.id.cb_all:
// //全选的checkBox如果选中 那么其余三项全部选中 否则全部取消
// if(cb_all.isChecked()){
// cb_gf.setChecked(true);
// cb_eat.setChecked(true);
// cb_sleep.setChecked(true);
// }else{
// cb_gf.setChecked(false);
// cb_eat.setChecked(false);
// cb_sleep.setChecked(false);
// }
// break;
default:
break;
}
}
}
}