转Android - Button(按钮)的响应点击事件的4种写法

Posted wi100sh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转Android - Button(按钮)的响应点击事件的4种写法相关的知识,希望对你有一定的参考价值。

原文网址:http://www.yrom.net/blog/2011/12/12/android-4-onclicklistener-of-button/

Button控件setOnclickListener(View.OnClickListener listener)来接收一个点击事件的监听器

  • 自定义一个点击事件监听器类
    让其实现View.OnClickListener的onClick(View v)方法
1
2
3
4
5
class MyOnClickListener implements View.OnclickListener{
     public void onClick(View v){
     ...
     }
}

然后注册到按钮上

1
btn.setOnclickListener(new MyOnClickListener ());
  • 采用匿名内部类的形式
    当监听器只适用一个按钮时,可以将上面一个方法简化:
1
2
3
4
5
btn.setOnclickListener(new View.OnClickListener (){
     public void onClick(View v){
     ...
     }
});
  • 将当前Activity去实现View.OnClickListener
    在Activity中实现其onClick()方法。这样可以使多个按钮复用一个监听器。
    注册监听时,只需将当前对象(this)给按钮即可:
1
btn.setOnclickListener(this);

Tips:用switch-case针对各个Button的id来做相应的响应: eg.

1
2
3
4
5
6
7
8
9
10
11
12
13
public void onClick(View v){
     switch(v.getId()){
     case R.id.btn_login:
     login();
     break;
     case R.id.btn_regist:
     regist();
     break;
     default:
     doSomething();
     break;
     }
}
  • 在布局文件中显式指定按钮的onClick属性
    对应Activity的布局文件加入形如:
1
2
3
4
5
<Button
  android:onClick="click"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/btn_text" />

这样按钮点击时会利用反射的方式调用对应Activity中的click()方法:

1
2
3
public void click(View v){
...
}

一个Button只能有一个onClick属性值,一个click()方法可以赋给多个Button。 在click()方法中可以针对Button的Id来做响应,参见上面的Tips。

以上是关于转Android - Button(按钮)的响应点击事件的4种写法的主要内容,如果未能解决你的问题,请参考以下文章

Android studio按钮跳转代码break

java web 按钮跳转问题

android3个界面如何跳转

Android开发——三种活动跳转方式

android开发的软件,单击按钮之后跳转到另一个页面。

android开发里跳过的坑——button不响应点击事件