【摘要】:相比于基于回调的事件处理,这是更具“面向对象”性质的事件处理方式。基于监听器的事件处理机制是一种委派式Delegation的事件处理方式,事件源将整个事件委托给事件监听器,由监听器对事件进行响应处理。这种处理方式将事件源和事件监听器分离,有利于增强程序的可维护性。事件的产生会触发事件监听器,事件本身作为参数传入到事件处理器中。图4-3 Android事件监听处理机制基于事件监听器的事件处理需要做如下3个工作。
相比于基于回调的事件处理,这是更具“面向对象”性质的事件处理方式。在监听器模型中,主要涉及三类对象。
(1)事件源Event Source:产生事件的来源,通常是各种组件,如按钮、窗口等。
(2)事件Event:事件封装了界面组件上发生的特定事件的具体信息,如果监听器需要获取界面组件上所发生事件的相关信息,一般通过事件Event对象来传递。
(3)事件监听器Event Listener:负责监听事件源发生的事件,并对不同的事件做相应的处理。
基于监听器的事件处理机制是一种委派式Delegation的事件处理方式,事件源将整个事件委托给事件监听器,由监听器对事件进行响应处理。这种处理方式将事件源和事件监听器分离,有利于增强程序的可维护性。
委托事件模型的原理如图4-3所示。外部的操作,例如按下按键、触摸屏单击或转动移动终端等动作,会触发事件源的事件。对于单击按钮的操作来说,事件源就是按钮,它会根据这个操作生成一个按钮按下的事件对象,这对于系统来说,就产生了一个事件。
事件的产生会触发事件监听器,事件本身作为参数传入到事件处理器中。事件监听器是通过代码在程序初始化时注册到事件源的,也就是说,在按钮上设置一个可以监听按钮操作的监听器,并且通过这个监听器调用事件处理器,事件处理器里有针对这个事件编写的代码。(www.xing528.com)
图4-3 Android事件监听处理机制
基于事件监听器的事件处理需要做如下3个工作。
(1)定义监听器类,覆盖对应的抽象方法,在监听器中针对事件编写相应的处理代码。
(2)创建监听器对象。
(3)注册监听器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。