Android之事件监听
2010-05-26 22:05:00 来源:WEB开发网什么是事件监听器(Event Listener)
UI的使用者事件处理,即View如何处理使用者的操作,是一个重要的课题。 View是重要的类别,它是与使用者互动的前线;在 Android框架的设计中,以事件监听器(event listener)的方式来处理UI的使用者事件。
Android框架提供了非常良好的UI事件处理机制。先前的教学提到,View是绘制UI的类别,每个 View物件都可以向Android框架注册一个事件监听器。每个事件监听器都包含一个回呼函数(callback method),
这个回呼函数(callback method)主要的工作就是回应或处理使用者的操作。
Event Listener: 以Click Listener为例
以「使用者触碰(touch)」的动作来说,当 View要处理使用者触碰的事件时,就要向Android框架注册View.OnClickListener事件监听器;当「touch」事件发生时,Android框架便回呼事件监听器里的回呼函数。
View.OnClickListener是 click listener,故名思意,这是UI的「Click动作监听器」;当使用者对View进行Click操作时(即触控画面上的UI元件),Android 框架便会回呼这个View.OnClickListener的回呼函数。
View.OnClickListerner的回呼函数为OnClick()。
这里所提到的监听器泛指event listener,主要用来「监听」使用者的各种动作。除了View.OnClickListener 外,Android框架还有以下的event listener(及其callback method):
·View.OnLongClickListener: onLongClick()
·View.OnFocusChangeListener: onFocusChange()
·View.OnKeyListener: onKey()
·View.OnTouchListener: onTouch()
·View.OnCreateContextMenuListener: onCreateContextMenu()
另外一种处理UI事件的机制为事件处理器(event handler),event handler与event listener是不一样的二种处理机制。在自订Android component的教学里,再介绍这个部份。
Widget中事件监听器的实现
Widget中事件监听器的实现
widget中是没有click listener的,那么如何实现点击的动作呢?我们可以通过广播的形式来替代click linstener。
我们知道widget其实就是一个 BroadcastReceiver,所以在AndroidManifest.xml中,注册一个新的action:
< receiver android:name="XXX" >
< meta-data android:name="android.appwidget.provider"
更多精彩
赞助商链接