原文地址: http://www.jollen.org/blog/2009/06/jollen-android-programming-15.html
學會產生基本的UI後,接著就要學習UI的事件處理(UI Events),才能讓UI與使用者「互動」。
什麼是事件監聽器(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的教學裡,再介紹這個部份。
--jollen