Android事件处理


事件处理:

Android 提供了两种方式来进行事件处理:一是基于监听的事件处理,二是回调的事件处理

第一种:基于监听的事件处理
类似与AWT,Swing编程,监听的处理模型仍然是三类对象:事件源,事件,事件监听器
Andioid 的事件处理机制是一种委派式事件处理模式:普通组件(事件源)将整个事件封装成对象委托给特定的对象(事件监听器)进行处理;事件源发生指定事件时就通知指定的事件监听器来监听处理事件
每个组件对于特定事件可以指定一个或多个监听器,一个监听器也可监听不同事件源。
编程步骤:
1.获取普通界面组件(事件源),也就是被监听的对象
2.实现事件监听器类,类似XxxListener接口
3.调用事件源的setXxxListener方法将事件监听器对象注册给普通组件
程序中实现事件监听器:
1.内部类
2.外部类
3.Activity 本身作为事件监听器
4匿名内部类形式(推荐)
PS: 一般不推荐将业务逻辑实现写在事件监听器中,显示逻辑和业务逻辑的混合将增加程序后期维护难度。如果有多个监听器需要实现相同的业务逻辑,可以考虑使用业务逻辑组件来定义业务逻辑功能。
另:Android还有“直接绑定到标签”的事件监听方式。对于Android 界面的组件标签,都支持OnClick属性,属性名就是形如xxx(View source)的方法的方法名,然后在相应的界面布局对应的Activity定义一个void xxx(View source)方法就行了
第二种:回调的事件处理
当用户在GUI 组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。是一种事件源与事件监听器相结合的机制。
编程步骤:
1.自定义类继承要实现回调处理的GUI 组件类  例如:public class mybutton extends Button{}
2.重写该类的事件处理方法 例如: public boolean onKeyDown(int keyCode,KeyEvent event){}
3.然后就可在界面布局文件使用该组件,系统会自动处理特定事件 例如:<com.lin.mybutton   安卓平常的设置属性。。。。/> 注意此时一定要用全包名

注意:基于回调的事件传播。如果在重写事件处理时,一般都需要返回一个boolean 值, 该值代表此事件是否被完全被处理,如果为false ,那么该事件会传播给其他组件,例如Activity .
一般来说:事件触发顺序为:优先绑定的监听器,然后是该组件的回调事件,最后才是Activity 回调事件。如果能传播的话。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值