:
代碼如下:
activity_main.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: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/dotaid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="dota" /></LinearLayout>
有2種方法;
第一種是OnClickListener的使用方法:
代碼如下:
MainActivity.java
package com.jk.test;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.CheckBox;public class MainActivity extends Activity {private CheckBox eatBox;private CheckBox sleepBox;private CheckBox dotaBox;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);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);}class onBoxClickListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubCheckBox box = (CheckBox)v;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("is checked!");elseSystem.out.println("is unchecked!");}}@Overridepublic 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;}}
第二種是OnCheckedChangeListener的使用方法:
package com.jk.test;import android.app.Activity;import android.os.Bundle;import android.view.Menu;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 dotaBox;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);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 OnCheckedChangeListener{public void onCheckedChanged(CompoundButton v, boolean isChecked) {// TODO Auto-generated method stubCompoundButton box = (CompoundButton)v;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(isChecked)System.out.println("is checked!");elseSystem.out.println("is unchecked!");}}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;}}
另外下面是實現全選的功能:
package com.jk.test;import android.app.Activity;import android.os.Bundle;import android.view.Menu;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 dotaBox;private CheckBox allClickBox;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);eatBox = (CheckBox) findViewById(R.id.eatid);sleepBox = (CheckBox) findViewById(R.id.sleepid);dotaBox = (CheckBox) findViewById(R.id.dotaid);allClickBox = (CheckBox) findViewById(R.id.allClickid);CheckBoxListener listener = new CheckBoxListener();eatBox.setOnCheckedChangeListener(listener);sleepBox.setOnCheckedChangeListener(listener);dotaBox.setOnCheckedChangeListener(listener);allClickBox.setOnCheckedChangeListener(listener);}class CheckBoxListener implements OnCheckedChangeListener {public void onCheckedChanged(CompoundButton v, boolean isChecked) {CompoundButton box = (CompoundButton) v;if (box.getId() == R.id.eatid) {if (isChecked)System.out.println("eatBox is checked!");elseSystem.out.println("eatBox is unchecked!");} else if (box.getId() == R.id.eatid) {if (isChecked)System.out.println("sleepBox is checked!");elseSystem.out.println("sleepBox is unchecked!");} else if (box.getId() == R.id.eatid) {if (isChecked)System.out.println("dotaBox is checked!");elseSystem.out.println("dotaBox is unchecked!");} else if (box.getId() == R.id.allClickid) {if (isChecked) {eatBox.setChecked(true);sleepBox.setChecked(true);dotaBox.setChecked(true);} else {eatBox.setChecked(false);sleepBox.setChecked(false);dotaBox.setChecked(false);}}}}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;}}