使用了很久的安卓的事件监听,今天在准备面试的时候也做一个小小的总结吧,常用的安卓事件监听主要有4种方式
第一种方式是直接绑定标签的方式,比如说我们在布局文件中增加一个οnclick=”click”
那么我们在主界面通过可以这样进行事件监听的实现
经验之谈
关于Toast的,其实在第一个传入上下文的时候,最好将当前的Activity的名.this的方式,不然很容易写成class,当然,这是我的错误
//以前自己总是忘记增加一个view对象,或者是将public写成private
public void click(View view)
{
Toast.makeText(this,"您的事件被点击",0).show();
}
第二种方式就是通过匿名内部类的方式,也就是找到组件,然后增加setOnClickListener()的方式,这个的错误比较少实现
举例:
Button button=(Button)findViewById(R.id.button_1);
button.setOnClickListener(new View.onClickListener()
{
public void onClick(View view)
{
Toast.makeText(this,"您的事件被点击",0).show();
}
);
第三种方式,把当前的Activity设置为事件监听器
我们可以在找到的控件中增加方法,但是我们传进去的参数是this,然后在主要的Activity中实现方法,这种方法可以使用到switch语句,通过getId()的方式得到多个控件的监听
第四种方式
我们可以将传入的参数变成我们已经实现onClickListener的对象,传进入同样可以实现监听
Button button=(Button)findViewById(R.id.button_1);
button.setOnClickListener(new MyListener);
private class MyListenr implements OnClickListener(
{
public void onClick(View view)
{
Toast.makeText(this,"您的事件被点击",0).show();
}
);
对于四种方法而已,个人总结还是匿名内部类比较好,因为第一种方法直接绑定标签的方式虽然很简单,但是对程序的可读性不够好,容易造成函数的混淆,另外代码也不够美观。
对于在Activity进行事件监听,本人觉得也是不太好,原因是看起来别扭
其他两种方法,见仁见智吧