Android事件处理详解
3918 点击·0 回帖
![]() | ![]() | |
![]() | Android事件处理机制有两套: 基于监听的事件处理 基于回调的事件处理 先说一下事件处理的过程,事件处理主要涉及三个主要部分,事件源、事件、事件监听器,下面画个图解释一下他们之间的关系和事件处理的过程: 图片:20130110091555338.jpg ![]() 下面说说基于监听的事件处理 熟悉swing的都知道,这很简单,就是为事件源注册监听者,然后实现监听者接口就哦了 实现监听者有四种方法,下面分别说说四种方法的利弊: 一、外部类实现监听者 利: 基本没有 弊: 1、事件监听器通常属于特定的GUI界面,不利于程序的内聚性 2、外部类监听器不能随意访问GUI界面类中的组件,编程不够简洁 二、内部类实现监听者 利: 1、可以在当前类中复用该类 2、给类可以随意访问外部类中的组件 弊: 基本没有 三、匿名内部类实现监听者 利: 大部分时候事件处理器没有复用价值,匿名内部类正好 弊: 语法有点难度 四、Activity本身作为监听者 利: 基本没有 弊: 1、Activity本身应只负责界面类的初始化,不要多管闲事,违反单一功能原则 2、看着就乱 再说说基于回调的事件处理 实现方法:要通过自定义View来实现,在自定义View中重写该View的事件处理方法即可 例如:自定义MyButton继承自Button,覆盖onKeyDown方法,然后使用MyButton时发生keyDown事件就会调用此方法 好处:可以使内聚性更强 另外,Android中还可以在xml文件中以标签的形式绑定组件相应的事件处理函数 例如: 一个按钮<Button android:onClick="clickEvent".../> 在相应的Activity中定义clickEvent函数即可 好处:方便简洁 | |
![]() | ![]() |