Android - Button(按钮)的响应点击事件的4种写法
Button控件setOnclickListener(View.OnClickListener listener)
来接收一个点击事件的监听器
- 自定义一个点击事件监听器类
让其实现View.OnClickListener的onClick(View v)
方法然后注册到按钮上1
2
3
4
5class MyOnClickListener implements View.OnclickListener{
public void onClick(View v){
...
}
}1
btn.setOnclickListener(new MyOnClickListener ());
- 采用匿名内部类的形式
当监听器只适用一个按钮时,可以将上面一个方法简化:1
2
3
4
5btn.setOnclickListener(new View.OnClickListener (){
public void onClick(View v){
...
}
}); - 将当前Activity去实现View.OnClickListener
在Activity中实现其onClick()
方法。这样可以使多个按钮复用一个监听器。
注册监听时,只需将当前对象(this)给按钮即可:Tips:用switch-case针对各个Button的id来做相应的响应:1
btn.setOnclickListener(this);
eg.1
2
3
4
5
6
7
8
9
10
11
12
13public 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
|
public void click(View v){
|
一个Button只能有一个onClick属性值,一个click()方法可以赋给多个Button。
在click()方法中可以针对Button的Id来做响应,参见上面的Tips。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2017-08-14 C#基础系列——异步编程初探:async和await
2017-08-14 WCF异步调用
2015-08-14 NameValueCollection详解