一、Android提供了两套强大的事件处理机制
1、基于监听的事件处理;
2、基于回调的事件处理;
二、表格进行相关地方进行对比
对比领域 | 基于事件监听 | 基于回调的事件处理 |
1、处理方式 | 为Android界面组件绑定特定的事件监听器 | 重写Android特定组件的回调方法,或重写Activity的回调方法 |
2、处理的内容 | 多数都可完成 | 处理通用性事件,代码简洁 |
3、是否可传播 | 不可以传播 | 可以传播,但是需要将回调方法返回值设为true |
4、使用思路 | 实现监听器处理类,就是实现特定接口的java | 自定义组件,重写自定义组件中父类组件对特定事件的回调处理方法 |
类的实例 | ||
5、使用步骤 | (1)获取普通组件(事件源) | (1)自定义一个View等组件,该组件继承该组件类别的父类 |
(2)实现事件监听器类,该监听器类是一个 | (2)重写该组件中的目标事件回调方法 | |
特殊的java类,必实现一个XxxListener接口 | ||
(3)调用事件源的setXxxListener方法将事件 | ||
监听器对象注册给普通组件 | ||
6、关键点 | 实现事件监听器类 | 重写父类的事件处理方法 |
7、处理特点 | 委派式的处理方式(事件源与事件监听器是分离 | 独立式处理(事件源与事件监听器统一) |
的,利于提高程序的可维护性) | ||
普通组件将事件处理委托给特定的事件监听器 | ||
8、常用特征性内容 | 事件源 事件 监听器 注册事件 重写监听器类 | 回调、 事件、自定义组件、事件传播 |
实现接口,内部类形式、外部类形式、匿名内部 | ||
类形式、绑定到标签(onClick()) | ||
9、事件源的条件 | 普通组件 | 自定义组件 |
10、优势 | 可维护性强、适用性广 | 可传播:某组件上所发生的事件不仅会激发该组件上的回调方法,也 |
会触发该组件所在的activity等组件——只要事件能处理到该Acitivity | ||
11、备注 | 建议对于一次性事件使用匿名内部类的形式 | 如果使用xml布局文件形式,需要加上类名 |