老菜鸟自习室 2011-08-19
在Android平台上,捕获用户在界面上的触发事件有很多种方法,View类就提供这些方法。
你在使用各种View视图来布局界面时,会发现几个公用的回调方法来捕捉有用的UI触发事件,当事件在某个View对象上被触发时,这些方法会被系统框架通过这个对象所调用,例如:当一个View(如一个Button)被点击,onTouchEvent()方法会在该对象上被调用,所以,为了捕获和处理事件,必须去继承某个类,并重载这些方法,以便自己定义具体的处理逻辑,显然,你更容易明白,为什么在你使用View类时会嵌套带有这些回调方法的接口类,这些接口称为event listeners,它是你去获取UI交互事件的工具在你继承View类,以便建立一个自定义组,也许你想继承Button , 你会更普遍使用事件监听来捕捉用户的互动,在种情况下,你可以使用类的event handlers.来预定义事件的处理方法。
Event Listeners
View类里的event listener是一个带有回调方法的接口,当UI里的组建是被用户触发时,这些方法会被系统框架所调用
onClick()
来自View.OnClickListener 它会被调用当点击这个Item(在触摸模式),或者当光标聚集在这个Item上时按下“确认”键,导航键,或者轨迹球。
onLongClick()
来自View.OnLongClickListener. 它会被调用当长按这个Item(在触摸模式),或者当光标聚集在这个Item上时长按“确认”键,导航键,或者轨迹球。
onFocusChange()
来自View.OnFocusChangeListener 它会被调用当光标移到或离开这个Item,
onKey()
来自View.OnKeyListener..它会被调用,当光标移到这个Item,按下和释放一个按键的时候
onTouch()
来自View.OnTouchListener. 它会被调用,在这个Item的范围内点触的时候
onCreateContextMenu()
来自View.OnCreateContextMenuListener. 它会被调用, 当上下文菜单被建立时(由于持续的“长按”) 见讨论Creating Menus更多的信息。
这些方法和嵌套接口类都是一一对应的,如果确定其中一种方法处理你的互动事件,你需要在Activity中实
现这个带有这个方法的接口,并把它作为匿名类,然后,通过实例的View.set...Listener() 方法来设置监
听器(例如,调用setOnClickListener(),来设置OnClickListener做为监听器)