疯狂Android讲义 - 学习笔记(三)

Android的事件处理

3.1 Android提供了两套事件处理机制:基于监听的事件处理、基于回调的事件处理。 

3.2 基于监听的事件处理

3.2.1 监听的处理模型  主要涉及三类对象:EventSource、Event、EventListener。 

Android的事件处理机制是一种委派式(Delegation)事件处理方式:普通组件将整个事件处理委托给特定的对象(事件监听器),可以把所有可能的事件授权给不同的事件监听器来处理,也可以让一类事件都使用同一个事件监听器来处理。

事件监听类是一个特殊的类,必须实现某Listener接口。 

3.2.2 事件和事件监听器  如果事件足够简单、事件里封装的信息有限,那就无需封装事件对象、将事件对象出入事件监听器。但对于键盘事件、触摸屏事件,程序需要获取事件发生的详细信息,Android会把事件信息封装成xxxEvent对象,并传给事件监听器。 

源码\03\3.2\plane) 增加触摸事件:

planeView.setOnTouchListener(new View.OnTouchListener(){

@Override public boolean onTouch (View v, MotionEvent event)

...... 

说明:planeView所使用的事件监听器类是内部类,使用内部类可以在当前类中复用该监听器类;因为监听器类是外部类的内部类,所以可以*访问外部类的所有界面组件。这也是内部类的两个优势。 

3.2.4 外部类作为事件监听器类  这种形式比较少见,因为不利于提高程序的内聚性,不能*访问创建GUI界面的类中的组件。但如果某个监听器确实需要被多个GUI界面所共享,而且主要完成某种业务逻辑的实现,则可以考虑用外部类的形式定义事件监听器类。 

源码\03\3.2\SendSms) 

 

疯狂Android讲义 - 学习笔记(三),布布扣,bubuko.com

疯狂Android讲义 - 学习笔记(三)

上一篇:Trapping Rain Water


下一篇:Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added here