

首先,在布局文件中注册CheckBox
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:orientation="vertical"
- tools:context=".MainActivity">
-
- <TextView android:text="@string/hello_world"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" />
-
- <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>
MainActivity.java
CheckBox 即可以绑定 view.OnClickListener,也可以绑定 CompoundButton.OnCheckedChangeListener.
- package com.example.litingdong.checkboxtest;
-
- import android.support.v7.app.ActionBarActivity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.CheckBox;
- import android.widget.CompoundButton;
-
-
- public class MainActivity extends ActionBarActivity {
-
- private CheckBox eatBox;
- private CheckBox sleepBox;
- private CheckBox dotaBox;
- @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);
- dotaBox=(CheckBox)findViewById(R.id.dotaID);
-
- OnButtonClickListener listener=new OnButtonClickListener();
- listener = new OnButtonClickListener();
- eatBox.setOnClickListener(listener);
- sleepBox.setOnClickListener(listener);
- dotaBox.setOnClickListener(listener);
-
-
- CheckBoxListener changeListener =new CheckBoxListener();
- eatBox.setOnCheckedChangeListener(changeListener);
- sleepBox.setOnCheckedChangeListener(changeListener);
- dotaBox.setOnCheckedChangeListener(changeListener);
- }
-
- class OnButtonClickListener implements View.OnClickListener{
- @Override
- public void onClick(View v) {
- CheckBox 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{
- System.out.println("dotaBox");
- }
-
- if (box.isChecked()){
- System.out.println("Checked!");
- }else{
- System.out.println("UnChecked!");
- }
- }
- }
-
- class CheckBoxListener implements CompoundButton.OnCheckedChangeListener{
-
- @Override
- public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
- 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!");
- }
- }
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
-
- getMenuInflater().inflate(R.menu.menu_main, menu);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
-
-
-
- int id = item.getItemId();
-
-
- if (id == R.id.action_settings) {
- return true;
- }
-
- return super.onOptionsItemSelected(item);
- }
- }
logcat:
|