热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Android事件处理详解

Android事件处理机制有两套:基于监听的事件处理基于回调的事件处理先说一下事件处理的过程,事件处理主要涉及三个主要部分,事件源、

Android事件处理机制有两套:

基于监听的事件处理

基于回调的事件处理

先说一下事件处理的过程,事件处理主要涉及三个主要部分,事件源、事件、事件监听器,下面画个图解释一下他们之间的关系和事件处理的过程:

下面说说基于监听的事件处理

熟悉swing的都知道,这很简单,就是为事件源注册监听者,然后实现监听者接口就哦了

实现监听者有四种方法,下面分别说说四种方法的利弊:

一、外部类实现监听者

利:

基本没有

弊:

1、事件监听器通常属于特定的GUI界面,不利于程序的内聚性

2、外部类监听器不能随意访问GUI界面类中的组件,编程不够简洁

二、内部类实现监听者

利:

1、可以在当前类中复用该类

2、给类可以随意访问外部类中的组件

弊:

基本没有

三、匿名内部类实现监听者

利:

大部分时候事件处理器没有复用价值,匿名内部类正好

弊:

语法有点难度

四、Activity本身作为监听者

利:

基本没有

弊:

1、Activity本身应只负责界面类的初始化,不要多管闲事,违反单一功能原则

2、看着就乱

再说说基于回调的事件处理

实现方法:要通过自定义View来实现,在自定义View中重写该View的事件处理方法即可

例如:自定义MyButton继承自Button,覆盖onKeyDown方法,然后使用MyButton时发生keyDown事件就会调用此方法

好处:可以使内聚性更强

另外,Android中还可以在xml文件中以标签的形式绑定组件相应的事件处理函数

例如:

一个按钮


推荐阅读
  • 在探讨Hibernate框架的高级特性时,缓存机制和懒加载策略是提升数据操作效率的关键要素。缓存策略能够显著减少数据库访问次数,从而提高应用性能,特别是在处理频繁访问的数据时。Hibernate提供了多层次的缓存支持,包括一级缓存和二级缓存,以满足不同场景下的需求。懒加载策略则通过按需加载关联对象,进一步优化了资源利用和响应时间。本文将深入分析这些机制的实现原理及其最佳实践。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 深入解析:Android应用生命周期管理与时序调整策略 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 在Java分层设计模式中,典型的三层架构(3-tier application)将业务应用细分为表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种分层结构不仅有助于提高代码的可维护性和可扩展性,还能有效分离关注点,使各层职责更加明确。通过合理的设计和实现,三层架构能够显著提升系统的整体性能和稳定性。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • 如何在Ubuntu 16.04 LTS中切换文件与文件夹的可见性
    在Ubuntu 16.04 LTS中,用户可以通过以下方法切换文件和文件夹的可见性:1. **图形界面快捷键**:使用 `Ctrl + H` 快捷键可以在当前文件管理器窗口中快速切换文件和文件夹的隐藏状态。2. **编辑偏好设置**:通过文件管理器的“编辑”菜单选择“偏好设置”,然后勾选“显示隐藏和备份文件”选项,可以永久性地显示所有隐藏文件和文件夹。这一设置适用于需要频繁访问隐藏文件的用户。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有