Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習筆記(36):Android的兩種事件處理方式

Android學習筆記(36):Android的兩種事件處理方式

編輯:關於Android編程

Android提供了兩種事件處理的方式:基於回調的事件處理 和 基於監聽的事件處理。

 

我們來說的容易理解一點:

(1)基於回調的事件處理就是繼承GUI組件,並重寫該組件的事件處理方法。除了一些特定的情況,大部分情況使用基於回調的事件處理方式並不是最好的選擇。

(2)基於監聽的事件處理就是在監聽器中定義事件的處理方式,再為組件綁定監聽器。這種方式無疑是更能夠體現面向對象思想的。

 

基於回調的事件處理:

 

View類包含如下的方法可以用於重寫:

boolean onKeyDown(int keyCode,KeyEvent event):按下某個按鍵時觸發

boolean onKeyUp(int keyCode,KeyEvent event):松開某個按鍵時觸發

boolean onKeyLongPress(int keyCode,KeyEvent event):長按某個按鍵時觸發

boolean onKeyShortcut(int keyCode,KeyEvent event):按下某個快捷鍵時觸發

boolean onTouchEvent(MotionEvent event):觸摸屏幕時觸發

 

我們注意到返回值都是一個boolean值,這用於標識該方法能否完全處理該事件。返回true表示能完全處理,事件不會傳播出去,返回false表示不能完全處理,事件會傳播出去。交給下面的事件處理方法處理。

 

 

基於監聽的事件處理:

 

這是一種委派式的事件處理方式:普通組件(事件源)將事件處理委托給(綁定)事件監聽器,事件源發生指定的事件時,通知事件監聽器來處理該事件。

 

下圖展示的是基於監聽的事件處理流程圖:

\

 

了解下下面這幾種概念:

事件源:就是各種GUI組件。

事件監聽器:各種XxxListener類,需要實現事件處理方法的接口。

注冊監聽器:調用事件源的setXxxListener(XxxListener)方法。

 

View包含如下幾個內部接口:

View.OnClickListener:處理單擊事件

View.OnCreateContextMenuListener:處理單擊上下文菜單項的事件

View.onFocusChangeListener:處理焦點改變事件

View.OnKeyListener:處理按鍵事件

View.OnLongClickListener:處理長按事件

View.OnTouchListener:處理觸摸事件

 

一個事件監聽器可以被多個GUI組件所共用。

 

實現事件監聽器可以有如下幾種形式:

內部類、外部類、Activity本身實現,匿名內部類、直接綁定到標簽(這是特殊但很方便的形式)。

 

這各種實現如果熟悉Java的話,實現都是不難的。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved