效果图:
代码如下:
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; @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); onBoxClickListener listener =new onBoxClickListener(); eatBox.setOnClickListener(listener); sleepBox.setOnClickListener(listener); dotaBox.setOnClickListener(listener); } class onBoxClickListener implements OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub 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 if(box.getId()==R.id.dotaid) System.out.println("dotaBox"); if(box.isChecked()) System.out.println("is checked!"); else System.out.println("is unchecked!"); } } @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; } }
第二种是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; @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); 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 stub CompoundButton 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!"); else System.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; @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); 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!"); else System.out.println("eatBox is unchecked!"); } else if (box.getId() == R.id.eatid) { if (isChecked) System.out.println("sleepBox is checked!"); else System.out.println("sleepBox is unchecked!"); } else if (box.getId() == R.id.eatid) { if (isChecked) System.out.println("dotaBox is checked!"); else System.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; } }
时间: 2024-11-01 22:43:52