多选按钮(CheckBox)的基本概念
<CheckBox/>与CheckBox
OnClickListener与OnCheckedChangeListener监听器
示例代码:
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" >
<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
package com.pmplife.checkbox;
import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; 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); //第1步:获取代表控件的对象 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);*/
//第3步:生成监听器对象 CheckBoxListener listener2 = new CheckBoxListener();
//第4步:为控件绑定监听器对象 eatBox.setOnCheckedChangeListener(listener2); sleepBox.setOnCheckedChangeListener(listener2); dotaBox.setOnCheckedChangeListener(listener2); }
//OnCheckedChangeListener的使用方法 //第2步:定义一个类,实现监听器接口 class CheckBoxListener implements 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 if (buttonView.getId() == R.id.dotaId){ System.out.println("dotaIdBox"); }
if(isChecked){ System.out.println("Checked"); } else{ System.out.println("UnChecked"); }
} }
//OnClickListener的使用方法 //第2步:定义一个类,实现监听器接口 class OnBoxClickListener implements OnClickListener { @Override public void onClick(View v) { CheckBox box = (CheckBox)v; System.out.println("id-->" + v.getId()); 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("dotaIdBox"); }
if(box.isChecked()){ System.out.println("Checked"); } else{ System.out.println("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; }
}
|