轉一篇簡易易懂的android回調的實現--->(轉的)

來源:互聯網
上載者:User

標籤:android   blog   http   os   java   ar   strong   div   sp   

回調機制在 Android 監聽使用者介面操作中的體現 

本文討論以下兩個內容:

1. 回呼函數

2. 回調機制在 Android架構 監聽使用者介面操作中的作用

一 回呼函數

回呼函數就是一個通過函數指標調用的函數。如果你把函數的指標(地址)作為參數傳遞給另一個函數,當這個指標被用為調用它所指向的函數時,我們就說這是回呼函數。回呼函數不是由該函數的實現方直接調用,而是在特定的事件或條件發生時由另外的一方調用的,用於對該事件或條件進行響應。

Java 中沒有指標的概念,通過介面和內部類的方式實現回調的功能:

1. 定義介面 Callback ,包含回調方法 callback()

2. 在一個類Caller 中聲明一個Callback介面對象 mCallback

3. 在程式中賦予 Caller對象的介面成員(mCallback) 一個內部類對象如

new  Callback(){

     callback(){

         //函數的具體實現

     }

這樣,在需要的時候,可用Caller對象的mCallback介面成員 調用callback()方法,完成回調.

 二、回調機制在 Android架構 監聽使用者介面操作中的作用

Android事件接聽程式是視圖View類的介面,包含一個單獨的回調方法。這些方法將在視圖中註冊的接聽程式被使用者介面操作觸發時由Android架構調用。回調方法被包含在Android事件接聽程式介面中:

例如,Android 的view 對象都含有一個命名為 OnClickListener 介面成員變數,使用者的點擊操作都會交給 OnClickListener的 OnClick() 方法進行處理。

開發人員若需要對點擊事件做處理,可以定義一個 OnClickListener 介面對象,賦給需要被點擊的 view的介面成員變數OnClickListener,一般是用 view 的setOnClickListener() 函數來完成這一操作。

當有使用者點擊事件時,系統就會回調被點擊view的OnClickListener介面成員的OnClick()方法。

執行個體(對於Android介面上Button點擊事件監聽的類比):

1.定義介面

public interface OnClickListener {

   

    public void OnClick(Button b);

 

}

2. 定義Button

public class Button {

  OnClickListener listener;

 

  public void click() {

    listener.OnClick(this);

  }

  public void setOnClickListener(OnClickListener listener) {

    this.listener = listener;

  }

}

3. 將介面對象OnClickListener 賦給 Button的介面成員

public class Activity {

  public Activity() {

  }

  public static void main(String[] args) {

    Button button = new Button();

    button.setOnClickListener(new OnClickListener(){

       @Override

       public void OnClick(Button b) {

                 System.out.println("clicked");

       }   

    });

    button.click(); //user click,System call button.click();

  }

}

轉一篇簡易易懂的android回調的實現--->(轉的)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.