今天培训了关于绑定事件监听器的方法,现做出如下总结:
1,直接绑定到标签。在.xml文件中定义一个按钮,将按钮作为事件源,里面为Button按钮绑定一个事件处理方法click。切记要先在Button里绑定事件处理方法这样在Activity中定义方法才有效。
<Button
android:id="@+id/btn_click"
android:text="跳转到第二个Activity"
android:layout_width="match_parent"
android:onClick="click"
android:layout_height="wrap_content"/>
然后在.java文件中实现click方法
public void click(View v){
Intent intent = new Intent(); intent.setClass(MainActivity1.this,SecondActivity.class);
startActivity(intent);
}
2,外部类作为事件监听器类。在.java文件中定义一个单击事件的监听器,onClick()方法为实现监听器类必须实现的方法,该方法将作为事件处理器
class OnclickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity1.this,SecondActivityclass);
startActivity.(intent);
}
}
还要为按钮绑定事件监听器,这样在触发按钮后会跳转到第二个Activity,在绑定按钮监听器之前要先找到按钮
btnClick=(Button)findViewById(R.id.btn_click);
btnClick.setOnClickListener(new OnclickListener());
3,通过使用匿名内部类的实例作为事件监听器
btnClick=(Button)findViewById(R.id.btn_click);
btnClick.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Intent intent = new Intent(); intent.setClass(MainActivity1.this,SecondActivity.class);
startActivity(intent);
}
});
使用内部类可以在当前类中复用监听器类,并且可以自由访问外部类的所有界面组件。大部分的事件监听器只是临时使用一次,所以使用匿名内部类形式的事件监听器更合适。
4,Activity本身作为事件监听器类,注意需要实现监听器接口OnClickListener
btnClick.setOnClickListener(this);
public void onClick(View v) {
Intent intent = new Intent(); intent.setClass(MainActivity1.this,SecondActivity.class);
startActivity(intent);
}
Activity的主要职责是完成界面初始化工作,但此时还需要包含事件处理器的方法,因此容易造成程序结构上的混乱。
综合以上四种绑定事件监听器的方法,我认为用直接绑定到标签方法更简单,当然,对于不同的情况选择合适的监听器方法。