佈局文件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;
}
}
}
}