通过对本节前面内容的学习,仔细对比Android中的两种事件处理模型,会发现基于事件监听的处理模型具有更大的优势,具体说明如下。
■ 基于监听的事件模型更明确,事件源、事件监听由两个类分开实现,因此具有更好的
可维护性。
■ Android的事件处理机制保证基于监听的事件监听器会被优先触发。
尽管如此,但是在某些情况下,基于回调的事件处理机制会更好地提高程序的内聚性。例如在下面的实例中,演示了事件处理机制提高程序内聚性的过程。
注意:内聚性,又称块内联系,指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合得越紧密,模块的内聚性就越高,模块的独立性也就越高理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。
本实例重写了Button类的onKeyDown方法,而且重写了Button所在Activity的onKeyDown(int keyCode,KeyEvent event)方法。因为本实例程序没有阻止事件的传播,所以在实例中可以看到事件从Button传播到Activity的情形。本实例的具体实现流程如下。
(1)编写布局文件main.xml,在屏幕中插入一个自定义的绘图控件,具体实现代码如下(www.xing528.com)
(2)编写Java程序文件DrawView.java,功能是绘制一个二维小球,并重写了View组件的onTouch Event方法,这表示由组件自己就可处理触摸屏事件。当用户手指在屏幕上移功时,在View上绘制的小球会随着用户手指的移动而移动。文件DrawView.java的具体实现代码如下。
在模拟器中执行后,小球将会随着触摸屏幕位置的改变而移动,如图8-12所示
图8-12 移动的小球
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。