Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android基本功:事件處理

Android基本功:事件處理

編輯:關於Android編程

一、事件概述

當用戶在程序界面上執行各種操作時,應用程序必須為用戶動作提供響應動作,這種響應動作需要通過事件處理來完成。Andorid提供了強大的事件處理機制,包括兩套事件處理機制:

基於監聽的事件處理:為Android界面組件綁定特定的事件監聽器;

基於回調的事件處理:重寫Android組件特定的回調方法,或者重寫Activity的回調方法;

注意:Android還允許在界面布局文件中為UI組件的android:onClick屬性指定事件的監聽方法,開發者需要在Activity定義該事件監聽方法,有一個View類型參數,代表單擊的組件;

二、基於監聽的事件處理

在事件監聽處理模型中,主要涉及如下三類對象:

Event Sources(事件源):事件發生的場所,指各個組件;

Event(事件):封裝了界面組件上發生的特定事件,一般通過Event對象來取得;

Event Listener(事件監聽器):監聽事件源發生的事件,並對各個事件做出相應的響應;

基於事件監聽的事件處理模型編程步步驟如下:

獲取普通界面組件(事件源),也就是被監聽的對象;

實現事件監聽器類,該監聽器類是一個特殊的Java類,必須事件一個XxxListener接口;

調用事件源的setXxxListener方法將事件監聽器對象注冊給普通組件(事件源);

在程序中實現事件監聽器,通常有如下方式:

內部類形式:將事件監聽器類定義成當前類的內部類;

外部類形式:將事件監聽類定義成一個外部類;

通常屬於特定的GUI界面,不利於提高程序的內聚性;

不能自由訪問創建GUI界面的類中的組件,編程不夠簡潔;

Activity本身作為事件監聽類:讓Activity本身實現監聽器接口,並實現事件處理方法;

Activity的主要職能應該是完成界面的初始化工作,造成程序結構混亂;

Activity實現監聽器接口,感覺怪異;

匿名內部類:使用匿名內部類創建事件監聽器對象;

大部分事件監聽知識臨時使用一次,所以使用匿名內部類更合適;

直接綁定到標簽:android:onClick屬性和xxx(View source)的方法;

三、基於回調的事件處理

對於基於回調的事件處理模型來說,事件源和事件監聽器是統一的。為了實現回調機制地事件處理,Android為所有的GUI組件提供了一些事件處理方法,以View為例:

boolean onKeyDown(int keyCode,KeyEvent event):在該組件上按下某個鍵時觸發的方法;

boolean onKeyLongPress(int keyCode,KeyEvent event):在該組件上長按某個鍵時觸發的方法;

boolean onTouchEvent(MotionEvent event):在該組件上觸摸屏事件時觸發的方法;

幾乎所有基於回調的事件處理方法都有一個boolean類型的返回值,該返回值用戶標識該處理方法是否能完全處理該事件:

返回true,已完全處理,不會傳播下去;

返回false,未完全處理,會傳播下去;

Android系統最先觸發的應該是該按鍵上綁定的事件監聽器(Listener),接著才觸發該組件提供的事件回調方法(MyButton),然後還會傳播到該組件所在的Activity(Activity)。

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