轉自:http://www.cnblogs.com/Vicky-Lee/archive/2013/01/09/2852862.html
上一篇文章介紹了事件處理的第一種方法--基於回調的事件處理,接下來說一下第二種--基於監聽的事件處理。對於Android基於監聽的事件處理而言,主要的做法就是爲Android界面組件綁定特定的事件監聽器(Listener)。
1. OnClickListener接口:
功能:該接口處理的是點擊事件。在觸控模式下,是在某個View上按下並擡起的組合動作,而在鍵盤模式下,是某個View獲得焦點後點擊確定鍵或者按下軌跡球事件。
對應的回調方法:public void onClick(View v)
說明:需要實現onClick方法,參數v便爲事件發生的事件源。
2. OnLongClickListener接口:
功能:OnLongClickListener接口與之前介紹的OnClickListener接口原理基本相同,只是該接口爲View長按事件的捕捉接口,即當長時間按下某個View時觸發的事件。
對應的回調方法:public boolean onLongClick(View v)
說明:需要實現onLongClick方法。
參數v:參數v爲事件源控件,當長時間按下此控件時纔會觸發該方法。
返回值:該方法的返回值爲一個boolean類型的變量,當返回true時,表示已經完整地處理了這個事件,並不希望其他的回調方法再次進行處理;當返回 false時,表示並沒有完全處理完該事件,更希望其他方法繼續對其進行處理。
3. OnFocusChangeListener接口:
功能:OnFocusChangeListener接口用來處理控件焦點發生改變的事件。如果註冊了該接口,當某個控件失去焦點或者獲得焦點時都會觸發該接口中的回調方法。
對應的回調方法:public void onFocusChange(View v, Boolean hasFocus)
說明:需要實現onFocusChange方法。
參數v:參數v便爲觸發該事件的事件源。
參數hasFocus:參數hasFocus表示v的新狀態,即v是否是獲得焦點。
4. OnKeyListener接口:
功能:OnKeyListener是對手機鍵盤進行監聽的接口,通過對某個View註冊該監聽,當View獲得焦點並有鍵盤事件時,便會觸發該接口中的回調方法。
對應的回調方法:public boolean onKey(View v, int keyCode, KeyEvent event)
說明:需要實現onKey方法。
參數v:參數v爲事件的事件源控件。
參數keyCode:參數keyCode爲手機鍵盤的鍵盤碼。
參數event:參數event便爲鍵盤事件封裝類的對象,其中包含了事件的詳細信息,例如發生的事件、事件的類型等。
5. OnTouchListener接口:
功能:OnTouchListener接口是用來處理手機屏幕事件的監聽接口,當爲View的範圍內觸摸按下、擡起或滑動等動作時都會觸發該事件。
對應的回調方法:public boolean onTouch(View v, MotionEvent event)
說明:需要實現onTouch方法。
參數v:參數v同樣爲事件源對象。
參數event:參數event爲事件封裝類的對象,其中封裝了觸發事件的詳細信息,同樣包括事件的類型、觸發時間等信息。
6. OnCreateContextMenuListener接口:
功能:OnCreateContextMenuListener接口是用來處理上下文菜單顯示事件的監聽接口。該方法是定義和註冊上下文菜單的另一種方式。
對應的回調方法:public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info)
說明:需要實現onCreateContextMenu方法。
參數menu:參數menu爲事件的上下文菜單。
參數v:參數v爲事件源View,當該View獲得焦點時纔可能接收該方法的事件響應。
參數info:info對象中封裝了有關上下文菜單額外的信息,這些信息取決於事件源View。
該方法會在某個View中顯示上下文菜單時被調用,開發人員可以通過實現該方法來處理上下文菜單顯示時的一些操作。其使用方法與前面介紹的各個監聽接口沒有任何區別。