初識Android 回調機制,初識android回調

來源:互聯網
上載者:User

初識Android 回調機制,初識android回調

在Android中到處可見介面回調機制,尤其是UI事件處理方面。舉一個最常見的例子button點擊事件,button有一個點擊方法onClick(),我們知道onclick()是一個回調方法,當使用者點擊button就執行這個方法。

在Java 中,通過介面和內部類的方式實現回調的功能:
1. 定義介面 OnItemClickClass,包含回調方法 OnItemClick()
2. 在一個類CallerClass 中聲明一個OnItemClickClass介面對象 onItemClickClass
3. 在程式中賦予 Caller對象的介面成員(onItemClickClass) 一個內部類對象如
new  OnItemClickClass(){
     OnItemClick(){
         //函數的具體實現
     }
這樣,在需要的時候,可用CallerClass 對象的onItemClickClass介面成員 調用OnItemClick()方法,完成回調.

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();  }}




聯繫我們

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