详解Android中点击事件的几种实现方式
发布时间 - 2026-01-10 21:56:38 点击率:次在之前博文中多次使用了点击事件的处理实现,有朋友就问了,发现了很多按钮的点击实现,但有很多博文中使用的实现方式有都不一样,到底是怎么回事。今天我们就汇总一下点击事件的实现方式。

点击事件的实现大致分为以下三种:
(1)Activity 实现接口方式实现点击事件(经常使用)
(2)自定义方法,使用配置文件android:onclick
(3)使用内部类方式实现
(4)使用匿名内部类实现介绍下几种点击事件的实现方式:
下面我们通过代码来简单演示下几种点击事件的实现方式:
(1)Activity 实现接口方式实现点击事件
/**
* Activity 实现接口方式实现点击事件
* Activity 实现 View.OnClickListener 实现 onClick(View view){} 方法
* 在 Activity 的 onCreate 方法中注册事件
*/
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(this);
}
public void onClick(View v) {
Toast.makeText(MainActivity.this,"实现接口方式",Toast.LENGTH_LONG).show();
}
}
(2)自定义方法,使用layout配置文件android:onclick
/**
* 使用配置文件方式实现点击事件
* 在layout中的配置文件中使用onClick 属性指定触发事件时的处理方法,
* 在 Activity 中提供一个同名的方法 格式为 public void XXX(View v){....}
*/
public class MainActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v){
Toast.makeText(MainActivity.this,"自定义",Toast.LENGTH_LONG).show();
}
}
(3)使用内部类方式实现
/**
* 使用内部类方式实现点击事件
* 定义一个 View.OnClickListener 的实现类,实现 onClick 方法。
* 在 Activity 的 onCreate 方法中注册事件
*/
public class MainActivity extends AppCompatActivity {
private Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button2);
btn.setOnClickListener(new Listener());
}
class Listener implements View.OnClickListener{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"内部类",Toast.LENGTH_LONG).show();
}
}
}
(4)使用匿名内部类实现
/**
* 使用匿名内部类方式实现点击事件
* 注册按钮单击事件时直接使用匿名内部类
*/
public class MainActivity extends AppCompatActivity {
private Button btn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.button3);
btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,"匿名内部类",Toast.LENGTH_LONG).show();
}
});
}
}
补充:
不同的组件来实现不同类型的点击事件,例如onItemClickListener,OnCheckedChangeListener,OnRatingBarChangeListener,OnMultiChoiceClickListener,OnDate/timeSetListener,OnScrollListener,OnChildClickListener,setOnTouchListener,OnPageChangeListener,OnMenuItemClickListener,OnEditorActionListener,OnEditorActionListener等等各种点击事件的处理形式。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# android
# 实现点击事件
# 点击事件
# 按钮点击事件
# Android中父View和子view的点击事件处理问题探讨
# Android中捕获TTextView文本中的链接点击事件方法
# 简单讲解Android开发中触摸和点击事件的相关编程方法
# Android如何防止多次点击事件
# Android中捕捉menu按键点击事件的方法
# Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
# Android开发在轮播图片上加入点击事件的方法
# Android点击事件派发机制源码分析
# Android开发-之监听button点击事件的多种方法
# Android给TextView添加点击事件的实现方法
# 配置文件
# 自定义
# 几种
# 博文
# 都不
# 有很多
# 三种
# 问了
# 提供一个
# 来实现
# 不同类型
# 单击
# 大家多多
# 格式为
# 发现了
# 分为以下
# 使用了
# class
# brush
# pre
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何确认建站备案号应放置的具体位置?
Laravel如何创建自定义Facades?(详细步骤)
Swift中循环语句中的转移语句 break 和 continue
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
免费视频制作网站,更新又快又好的免费电影网站?
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
开心动漫网站制作软件下载,十分开心动画为何停播?
图册素材网站设计制作软件,图册的导出方式有几种?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
原生JS获取元素集合的子元素宽度实例
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
iOS中将个别页面强制横屏其他页面竖屏
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
如何在万网自助建站中设置域名及备案?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Laravel如何实现模型的全局作用域?(Global Scope示例)
php结合redis实现高并发下的抢购、秒杀功能的实例
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
如何用腾讯建站主机快速创建免费网站?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
如何快速生成凡客建站的专业级图册?
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何实现文件上传和存储?(本地与S3配置)
*服务器网站为何频现安全漏洞?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel如何实现API速率限制?(Rate Limiting教程)
如何批量查询域名的建站时间记录?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
使用C语言编写圣诞表白程序
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
详解jQuery中的事件
历史网站制作软件,华为如何找回被删除的网站?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法
独立制作一个网站多少钱,建立网站需要花多少钱?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
Laravel怎么连接多个数据库_Laravel多数据库连接配置
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Laravel如何实现事件和监听器?(Event & Listener实战)
教你用AI将一段旋律扩展成一首完整的曲子
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何快速查询域名建站关键信息?

