Android 事件机制与事件监听

在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做为监听器)

相关推荐