几乎所有基于回调的事件处理方法都有一个boolean类型的返回值,该返回值用于标识该处理方法是否能完全处理该事件:如果处理事件的回调方法返回true,表明该处理方法以完全处理该事件,该事件不会传播出去。如果处理事件的回调方法返回false,表明该处理方法并未完全处理该事件,该事件会传播出去。 对于基于回调的事件传播而言,某组件上所发生的事件不仅激发该组件上的回调方法,也会触发该组件所在Activity的回调用法——只要事件能传播到该Activiy。 下面的一个程序示范了Android系统中的事件传播,该程序重写了Button类的onKeyDown(int keyCode,KeyEvent e. Read More
如果说事件监听机制是一种委托式的事件处理,那么回调机制则恰好与之相反;对于基于回调的事件处理模型来说,事件源与事件监听器是统一的,或者说事件监听器完全消失了。当用户在GUI组件上激发某个事件时,组件自己特定的方法将会负责处理该事件。 为了使用回调机制类处理GUI组件上所发生的事件,我们需要为该组件提供对应的事件处理方法——而Java又是一种静态语言,我们无法为某个对象动态的添加方法,因此只能继承GUI组件类,并重写该类的事件处理方法来实现。 为了实现回调机制的事件处理,Android为所有GUI组件都提供了一些事件处理的回调方法,以View为例,该类包含如下方法。boolean onKeyD. Read More