Android基於回調的事件處理

來源:互聯網
上載者:User

Android基於回調的事件處理

摘要:不管是案頭應用還是手機應用,面對最多的就是使用者,經常需要處理的就是使用者動作–也就是需要為使用者動作提供響應。這種為使用者動作提供響應的機制就是事件處理。
Android提供了強大的事件處理機制,包括兩套事件處理機制:
**–>基於監聽的事件處理
–>基於回調的事件處理**
基於監聽的事件處理平時用的比較多,比較熟悉了,這裡記錄一下我不熟悉的基於回調的事件處理。
對於基於回調的事件處理模型來說,事件來源和事件監聽器是統一的,或者說事件監聽器完全消失了。當使用者在GUI組件上激發某個事件時,組件自己特定的方法將會負責處理該事件。
基於回調的事件處理機制可通過自訂View類來實現,自訂View時重寫該View的事件處理方法即可。下面是一個自訂按鈕的實作類別。

public class MyButton extends Button{    public MyButton(Context context , AttributeSet set)    {        super(context , set);    }    @Override    public boolean onKeyDown(int keyCode , KeyEvent event)    {        super.onKeyDown(keyCode , event);        Log.v("----" , "基於回調的執行個體");        return true;    }}

在我們自訂的Button中,重寫了onKayDown方法,該方法會負責處理按鈕上的鍵盤事件。
在xml檔案中使用MyButton組件時:

com.caiyun.MyButton是MyButton類完整的類名。使用自訂的類時,都要用完整的類名哦!
這樣定義之後,無需在java程式中為按鈕綁定監聽器–因為按鈕自己重寫了onKeyDown(int keyCode , keyEvent event)方法,這以為著按鈕將會自己處理相應的事件。
小結:對於監聽的事件處理模型來說,事件來源和事件監聽器是分離的,當事件來源上發生特定的事件之後,該事件交給事件監聽器負責處理;對於基於回調的事件處理來說,事件來源和事件監聽器是統一的,當事件來源發生特定的事件後,該事件還是由事件本身負責處理。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.