CheckBox的OnCheckedChangeListener、OnClickListener、OnTouchListener
2013-04-28 14:35
357 查看
看到CheckBox这一章的内容,发现监听CheckBox的事件有很多,OnCheckedChangeListener、OnClickListener、OnTouchListener。
于是写代码为了测试他们的区别。
package com.xc.ex04_04;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class EX04_04 extends Activity {
public TextView tv1;
public TextView tv2;
public CheckBox cb;
public Button b;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.tv1);
tv2 = (TextView)findViewById(R.id.tv2);
cb = (CheckBox)findViewById(R.id.cb);
b = (Button)findViewById(R.id.b);
cb.setChecked(false);
b.setEnabled(false);
cb.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(cb.isChecked()){
b.setEnabled(true);
tv2.setText("");
System.out.println(33);
}
else{
b.setEnabled(false);
tv1.setText("");
tv2.setText("");
System.out.println(44);
}
}
});
cb.setOnClickListener(new CheckBox.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(cb.isChecked()){
b.setEnabled(true);
tv2.setText("");
System.out.println(11);
}
else{
b.setEnabled(false);
tv1.setText("");
tv2.setText("");
System.out.println(22);
}
}
});
/*开始我测试这种方法不知道怎么没效果,原来是要用鼠标按压CheckBox按钮才会看到效果*/
cb.setOnTouchListener(new CheckBox.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(cb.isChecked()){
System.out.println(55);
}
else{
System.out.println(66);
}
return false;
}
});
b.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(cb.isChecked()){
tv1.setText("你已经同意了");
}
else{
}
}
});
}
}
首先模拟器状态为,
点击我同意以后,打印的内容为
说明OnTouchListener是在CheckBox点击之前获得的内容,然后执行点击CheckBox之后的内容,执行OnCheckedChangeListener,再是OnClickListener。
于是写代码为了测试他们的区别。
package com.xc.ex04_04;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class EX04_04 extends Activity {
public TextView tv1;
public TextView tv2;
public CheckBox cb;
public Button b;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv1 = (TextView)findViewById(R.id.tv1);
tv2 = (TextView)findViewById(R.id.tv2);
cb = (CheckBox)findViewById(R.id.cb);
b = (Button)findViewById(R.id.b);
cb.setChecked(false);
b.setEnabled(false);
cb.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
if(cb.isChecked()){
b.setEnabled(true);
tv2.setText("");
System.out.println(33);
}
else{
b.setEnabled(false);
tv1.setText("");
tv2.setText("");
System.out.println(44);
}
}
});
cb.setOnClickListener(new CheckBox.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(cb.isChecked()){
b.setEnabled(true);
tv2.setText("");
System.out.println(11);
}
else{
b.setEnabled(false);
tv1.setText("");
tv2.setText("");
System.out.println(22);
}
}
});
/*开始我测试这种方法不知道怎么没效果,原来是要用鼠标按压CheckBox按钮才会看到效果*/
cb.setOnTouchListener(new CheckBox.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(cb.isChecked()){
System.out.println(55);
}
else{
System.out.println(66);
}
return false;
}
});
b.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(cb.isChecked()){
tv1.setText("你已经同意了");
}
else{
}
}
});
}
}
首先模拟器状态为,
点击我同意以后,打印的内容为
说明OnTouchListener是在CheckBox点击之前获得的内容,然后执行点击CheckBox之后的内容,执行OnCheckedChangeListener,再是OnClickListener。
相关文章推荐
- CheckBox的OnCheckedChangeListener、OnClickListener、OnTouchListener
- CheckBox的OnCheckedChangeListener、OnClickListener、OnTouchListener
- CheckBox的OnCheckedChangeListener、OnClickListener、OnTouchListener
- Android(5)多选按钮CheckBox、OnClickListener、OnCheckedChangeListener
- (转)Android 中 CheckBox 的 setOnClickListener 和 setOnCheckedChangeListener 的不同之处在哪?
- Android CheckBox的OnCheckedChangeListener监听传值
- Android开发中CheckBox的setOnClickListener和setOnCheckedChangeListener的不同之处在哪?
- 单选按钮RadioGroup、复选框CheckBox的OnCheckedChangeListener事件的实现方法
- Android开发中CheckBox、setOnClickListener和setOnCheckedChangeListener的不同之处在哪
- 避免checkBox 的setCheced() 触发 onCheckedChangeListener()
- Android开发中CheckBox的setOnClickListener和setOnCheckedChangeListener的不同之处在哪?
- EasyDemo*事件监听之CheckBox~onCheckedChangeListener(on Github)
- CompoundButton(checkbox,switch,ToggleButton)和RadioGroup OnCheckedChangeListener() 引用冲突问题
- CheckBox OnTouchListener、OnCheckedChangeListener和OnClickListener区别
- CheckBox控件的 OnCheckedChangeListener方法
- CheckBox的OnCheckedChangeListener的调用
- 第20章、OnCheckedChangeListener事件(从零开始学Android)
- OnCheckedChangeListener执行了二次
- OnTouchListener、OnClickListener、OnLongClickListener
- RadioButton单选按钮实现RadioGroup.OnCheckedChangeListener