android监听事件的方式

时间:2022-02-22 15:31:35

1.匿名内部类

bt.setOnClickListener(new OnClickListener(){

@Override
public void onClick(View view){
//Here is what you want to really do

}
}
);
优点:可以在当前类中复用该监听器类
可以*访问外部类的所有界面组件

2.外部类监听(比较少见)


public class myListener implements OnClickListener{

public myListener(){
//构造方法
}

@Override
public void OnClick(View view){
//Here is what you want to really do
}
}
调用外部类:bt.setOnClickListener(new myListener());

缺点:不利于提高程序内聚性
不能*访问创建GUI界面类的组件,编程不够简洁

3.Activity本身作为事件监听器


public class MyActivity extends Activity implements OnClickListener{

Button bt;

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(this);
}

@Override
public void onClick(View view){
//Here is what you want to really do
}

}
优点:简洁
缺点:这种形式可能造成程序结构混乱。Activity的主要职责应该是完成界面初始化;但此时还需包含事件处理器方法,从而引起混乱
如果activity界面类需要实现监听器接口,让人感觉比较怪异

4.直接绑定到标签


android:onClick="myClick"

在布局中对相应控件设置这样一个属性,在该布局对应的Activity中定义一个void myClick()方法

这种方法我用的时候被前辈批评了...说哪来这么野的路子...