首页 > 代码库 > Android 基于回调的事件处理----事件分发

Android 基于回调的事件处理----事件分发

     Android事件处理机制有两种:

     基于监听的事件处理

     基于回调的事件处理。

     基于监听的想必学过java或者接触过Android的都了解,最近看了一下有关回调方面的书,今天主要是想说一下基于回调的事件处理机制。多为我自己的理解总结和借鉴别人的一些东西,有错误或者不理解的地方可以在评论处指出来,谢谢~

    基于回调事件处理的做法:

     重新Android组件特定的回调方法,或者重写activity的回调方法,Android绝大部分界面组件都提供有事件响应的回调方法,开发者只要重写即可。,一般的,基于回调的事件处理可用于具有通用型事件,它的代码简洁。

    一、回调机制和监听机制

    对于基于回调事件处理模型来说事件源与事件监听器是统一的,就是说当用户在GUI组件上激发某个事件时,组件自己特定的方法将负责处理该事件。为了使用回调机制类处理GUI组件上发生的事件,我们需要为该组件提供对应的事件处理方式,但是java是静态语言,我们无法为某个对象动态添加方法,只能继承GUI组件类,然后重写该类的事件处理方法来实现。

    为实现回调机制的事件处理,Android为所有GUI组件都提供了一些事件处理的回调方法。以View为例,该类包含如下方法:

  boolean onKeyDown(int keyCode,KeyEvent event):当用户在该组件上按下某个按键时触发该方法。

 boolean onKeyLongPress(int keyCode,KeyEvent event):当用户在该组件上长按某个按键时触发该方法。

 boolean onKeyShortcut(int keyCode,KeyEvent event):当一个键盘快捷键事件发生时触发该方法。

 boolean onKeyup(int keyCode,KeyEvent event):当用户在该组件上松开某个按键时触发该方法。

 boolean onTouchEvent(MotionEvent event):当用户在该组件上触发触摸屏时触发该方法。

 boolean onTrackballEvent(MotionEvent  event):当用户在该组件上轨迹球屏事件时触发该方法。


    二、基于回调的事件传播(事件分发机制)




    三、重写onTouchEvent方法响应触摸屏事件

    

本文出自 “知行合一” 博客,请务必保留此出处http://poarry.blog.51cto.com/5970996/1554560

Android 基于回调的事件处理----事件分发