1. 概述:
用户在操作UI时候,需要程序为此动作提供响应,这种为用户动作提供响应的机制就是事件处理机制。
2. Android提供了两种对事件的处理:
a:基于回调方式事件处理:如果说监听事件处理是委托式事件处理,那么回调监听则与之相反。为了实现回调机制的处理,Android中所有的GUI几乎都有一些事件处理的回调方法,以view为例:
boolean onKeyDown():当用户在组件上按下某个按键时触发该方法。
boolean onKeyUp():当用户在组件上松开某个按键时触发该方法。
boolean onKeyLongPress():当用户在某个按键上长按时触发该方法。
boolean onTouchEvent():当用户触摸按键时候触发该方法。
b :基于监听方式的事件处理:基于监听的处理是一种“面向对象”的处理。主要涉及三类对象:
EventSource(事件源):事件发生的源头,通常为某一控件。
Event(事件):用户的具体某一操作的详细描述,事件封装了该操作的相关信息,如果程序需要获得事件源上所发生事件的相关信息,一般通过Event对象取得。
EventListener(事件监听器):负责监听用户在事件源上的操作,然后对事件源上的操作进行响应。
Android的此事件处理机制属于委托式事件处理。
基于监听事件一般通过以下几个步骤即可:
- 获取被监听的对象。一般是通过findViewById()的方式。
- 调用事件源的setXXXListener()方法将事件监听器对象注册给事件。
实现事件监听器类,必须实现一个XXXListener的接口,并实现里面的方法。
在程序中实现事件监听器通常有以下几种方式:
内部类形式
- 外部类形式
- 类自身作为监听器类
- 匿名内部类形式
Android中还提供了一种方式可以直接监听,就是在界面中直接绑定事件处理方法。Android中很多控件都支持onclick(),这相当于一个方法名,需要在java代码中为此点击事件做函数处理。