標籤:android
Android的事件處理機制:
基於監聽的事件處理
基於回調的事件處理
監聽:
為Android的組件綁定特定的事件監聽器,當觸發相應的事件時,會調用這些方法;
三個對象:
1.事件來源 也就是事件發生的場所,通常為各個組件
2.事件
3.事件監聽器
事件監聽的四種方法:
當控制項調用setOnClickListener()的時候,需要傳入一個OnClickListener的參數。通過查看原始碼,我們會發現,OnClickListener是一個介面。
所以,我們可以考慮三種方式來實現這個介面的功能:
1.建立一個外部類,實現介面:
例:
public class ClickOkListener implements OnClickListener{ //重寫OnClick方法}//**************************************////在Activity中調用btn.setOnClickListener(new ClickOkListener)
2.匿名內部類的方式
例:
btn.setOnClickListener(new OnClickListener(){ onClick() { //處理事件 }});
3.Activity作為事件監聽器
(1).btn.setOnCLickListener(this)
(2).讓Activity implements OnCLickListener
(3).在Activity中重寫onClick方法
此外,Android還允許開發人員通過在xml中設定onClick屬性來綁定點擊事件的處理。
回調:
處理Android組件特定的回調方法。
回調的事件處理模型中,事件來源和事件監聽器進行統一,當使用者觸發該事件的時候,組件中自己特定的方法會處理該事件。
View類中常用的回調方法:
onKeyDown 按鍵被按下
onKeyLongPress 按鍵被長按
onKeyUp 按鍵被鬆開
onTouchEvent 觸發觸控螢幕事件
回調事件的操作步驟:
1.自訂控制項類
2.在自訂的控制項中重寫父類的回調方法
3.在xml布局檔案中,直接使用自訂控制項
補充:幾乎每一個事件處理方法都有布爾類型的傳回值,用於標示該處理方法是否完全處理該事件。
如果返回true,則處理事件,不把事件傳遞出去。
如果返回false,則不處理事件,並把事件傳遞下去。
事件處理的先後順序:
1.監聽
2.回調
3.當前的Activity
著作權聲明:剛出鍋的原創內容,希望對你有協助~
Android的事件處理之監聽與回調