Android中点击事件的四种写法详解
发布时间 - 2026-01-11 01:02:10 点击率:次Android中点击事件的四种写法

- 使用内部类实现点击事件
- 使用匿名内部类实现点击事件
- 让MainActivity实现View.OnClickListener接口
- 通过布局文件中控件的属性
第一种方法:使用内部类
基本步骤如下:
1. 新建一个MyOnClickListener类并实现View.OnClickListener接口
2. 重写View.OnClickListener接口中的OnClick(View view)方法
3. 给Button绑定一个监听器,并监听一个点击事件
示例代码如下:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
//必须调用一次父类的该方法,因为父类中做了大量的工作
super.onCreate(savedInstanceState);
//给当前的Activity绑定一个布局
setContentView(R.layout.activity_main);
//通过调用父类的findViewById方法,根据控件的id获取控件对象
btn = (Button) findViewById(R.id.button);
//使用内部类(实现OnClickListener)给button绑定一个监听器,监听点击事件
btn.setOnClickListener(new MyOnClickListener());
}
/*注意:这里的OnClickListener是android.view.View包下的,
不是android.content.DialogInterface包下的。*/
class MyOnClickListener implements View.OnClickListener{
@Override
public void onClick(View v) {
System.out.println("使用内部类实现点击事件");
}
}
第二种方法:使用匿名内部类
基本步骤如下:
1. 给Button绑定一个监听器,并监听一个点击事件
2. 在setOnClickListener方法中直接传入一个OnClickListener对象,并实现OnClick方法
示例代码如下:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
//必须调用一次父类的该方法,因为父类中做了大量的工作
super.onCreate(savedInstanceState);
//给当前的Activity绑定一个布局
setContentView(R.layout.activity_main);
//通过调用父类的findViewById方法,根据控件的id获取控件对象
btn = (Button) findViewById(R.id.button);
//使用匿名内部类(实现OnClickListener)给button绑定一个监听器,监听点击事件
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("使用匿名内部类实现点击事件");
}
});
}
}
第三种方法:让MainActivity直接实现View.OnClickListener接口
基本步骤如下:
1. 让MainActivity直接实现View.OnClickListener
2. 在MainActivity类中重写onClick方法
3. 给Button绑定一个监听器,并监听一个点击事件。
注:此时setOnClickListener传入的是this
示例代码如下:
public class MainActivity extends Activity implements OnClickListener {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
//必须调用一次父类的该方法,因为父类中做了大量的工作
super.onCreate(savedInstanceState);
//给当前的Activity绑定一个布局
setContentView(R.layout.activity_main);
//通过调用父类的findViewById方法,根据控件的id获取控件对象
btn = (Button) findViewById(R.id.button);
//使用MainActivity实现OnClickListener接口给button绑定一个监听器,监听点击事件
//注:此时setOnClickListener传入的是this
btn.setOnClickListener(this);
}
//实现OnClickListener接口中的onClick方法
@Override
public void onClick(View v) {
System.out.println("让MainActivity实现View.OnClickListener接口从而实现点击事件");
}
}
第四种方法:通过布局文件中控件的属性
基本步骤如下:
1. 在activity_main.xml中给Button控件添加Android:onClick=”action”属性
2. 在Activity中实现action方法,action方法必须满足如下三个条件:
(1) 方法的访问修饰符必须是public
(2)方法的名称必须跟android:onClick=”action” 中的名称完全一致
(3)形参必须是View类型
示例代码如下:
public class MainActivity extends Activity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
//必须调用一次父类的该方法,因为父类中做了大量的工作
super.onCreate(savedInstanceState);
//给当前的Activity绑定一个布局
setContentView(R.layout.activity_main);
//通过调用父类的findViewById方法,根据控件的id获取控件对象
btn = (Button) findViewById(R.id.button);
System.out.println("Button 是"+btn);
}
//利用反射给button绑定一个监听器,监听点击事件
/**
* 1:方法的访问修饰符必须是public
* 2:方法的名称必须跟android:onClick="call" 中的名称完全一致
* 3:形参必须是View类型
* 注:形参View其实就是Button对象本身
* */
public void call(View view ){
System.out.println("View 是"+view);
System.out.println("通过反射实现点击事件");
}
}
友情提醒:形参View其实就是Button对象本身
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 点击事件写法
# 按钮点击事件
# 安卓点击事件4种写法
# Android中父View和子view的点击事件处理问题探讨
# Android中捕获TTextView文本中的链接点击事件方法
# 简单讲解Android开发中触摸和点击事件的相关编程方法
# Android如何防止多次点击事件
# Android中捕捉menu按键点击事件的方法
# Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
# Android 中ListView的Item点击事件失效的快速解决方法
# Android开发在轮播图片上加入点击事件的方法
# android中在Activity中响应ListView内部按钮的点击事件的两种方法
# 详解Android中点击事件的几种实现方式
# 绑定
# 种方法
# 类中
# 的是
# 为父
# 重写
# 修饰符
# 四种
# 大家多多
# 新建一个
# Button
# public
# extends
# Activity
# java
# pre
# class
# brush
# view
# MainActivity
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
大连网站制作公司哪家好一点,大连买房网站哪个好?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Python3.6正式版新特性预览
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
网站图片在线制作软件,怎么在图片上做链接?
焦点电影公司作品,电影焦点结局是什么?
javascript读取文本节点方法小结
如何批量查询域名的建站时间记录?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
googleplay官方入口在哪里_Google Play官方商店快速入口指南
Laravel安装步骤详细教程_Laravel环境搭建指南
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
如何在Windows虚拟主机上快速搭建网站?
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
详解Android——蓝牙技术 带你实现终端间数据传输
如何用狗爹虚拟主机快速搭建网站?
如何在IIS管理器中快速创建并配置网站?
如何做网站制作流程,*游戏网站怎么搭建?
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
网站页面设计需要考虑到这些问题
如何确保西部建站助手FTP传输的安全性?
Java垃圾回收器的方法和原理总结
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
如何快速生成ASP一键建站模板并优化安全性?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Python文件操作最佳实践_稳定性说明【指导】
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何快速查询网站的真实建站时间?
JavaScript如何实现继承_有哪些常用方法
网站优化排名时,需要考虑哪些问题呢?
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何在Windows服务器上快速搭建网站?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
JavaScript如何操作视频_媒体API怎么控制播放
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何为API生成Swagger或OpenAPI文档
详解阿里云nginx服务器多站点的配置
如何用西部建站助手快速创建专业网站?
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
中山网站制作网页,中山新生登记系统登记流程?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南

