安卓中,包含了强大的事件处理机制,包括两套事件处理机制:
1.基于监听的事件处理
2.基于回调的事件处理。
对于Android基于监听的事件处理,主要做法是为Android的界面组件绑定特定的事件监听器。这和我们学习java的awt、Swing的处理方式几乎相同。
对于Android基于回调的事件处理,主要做法是重新Android特定的回调方法,或者重写Activity的回调方法。Android为绝大部分界面组件提供了事件响应的回调方法,
开发者只需重写即可。一般来说,基于回调的事件处理可用于处理一些具有通用性的事件,基于回调的事件处理代码会显得简介。对于特定的事件响应,无法使用基于
回调的事件处理,只能采用监听的事件处理。
在基于回调的事件处理模型中,事件源和事件监听器是统一的,当用户在界面组件触发事件时,组件自己特定的方法将会负责该类事件的处理。
Android为所有的界面组件提供了一些事件处理的回调方法,以View为例,该类包括的方法如下:
1、boolean onKeyLongPress(int keyCode, KeyEvent event) {
return super.onKeyLongPress(keyCode, event); }组件被长按事件处理
2、public boolean onKeyDown(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
return true; }//组件被按下事件处理
3、 public boolean onTouchEvent(MotionEvent event) {
return true;}//屏幕接触事件处理
4、public boolean onKeyUp(int keyCode, KeyEvent event) {
super.onKeyDown(keyCode, event);
return true; }//组件按下后松开事件处理
未完待续