您的位置:首页 > 其它

CheckBox的OnCheckedChangeListener、OnClickListener、OnTouchListener

2012-05-22 08:53 363 查看
看到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);
}
}
});
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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐