Android 之事件處理(二)基於監聽的事件處理

轉自: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中顯示上下文菜單時被調用,開發人員可以通過實現該方法來處理上下文菜單顯示時的一些操作。其使用方法與前面介紹的各個監聽接口沒有任何區別。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章