Android入門之多選按鈕(CheckBox)

來源:互聯網
上載者:User

代碼如下:

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;}}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.