当你在用户界面中加入了一些视图和工具之后,你可能想要知道如何让它们与用户交互,进而实现你的动作。
如欲获得用户界面事件通知,你需要做以下两件事情之一:
• 定义一个事件侦听器并将其注册至视图。通常情况下,这是你侦听事件的主要方式。View 类包含了一大堆命名类似On<什么什么>Listener 的接口,每个都带有一个叫做On<什么什么>()的回调方法。比如: View.OnClickListener (用以处理视图中的点击),View.OnTouchListener (用以处理视图中的触屏事件),以及View.OnKeyListener (用以处理视图中的设备按键事件)。所以,如果你希望你的视图在它被”点击”(比如选择了一个按钮)的时候获得通知,你就要实现OnClickListener,定义它的onClick()回调方法(在其中进行相应处理),并将它用setOnClickListener()方法注册到视图上。
• 为视图覆写一个现有的回调方法。这种方法主要用于你自己实现了一个View 类,并想侦听其上发生的特定事件。比如说当屏幕被触摸(onTouchEvent()),当轨迹球发生了移动(onTrackballEvent())或者是设备上的按键被按下(onKeyDown())。这种方式允许你为自己定制的视图中发生的每个事件定义默认的行为,并决定是否需要将事件传递给其它的子视图。再说一次,这些是View 类相关的回调方法,所以你只能在你构建自定义组件时定义它们。