Android事件監聽器Event Listener

來源:互聯網
上載者:User

標籤:android   http   os   sp   on   cti   bs   代碼   工作   

在 Android 中,我們可以通過事件處理使UI與使用者互動(UI Events)。

UI的使用者事件處理,即View處理使用者的操作,在應用程式中幾乎不可避免。View是重要的類,它是與使用者互動的前線;在Android架構的設計中,以事件監聽器(event listener)的方式來處理UI的使用者事件。

Android架構提供了非常良好的UI事件處理機制。View是繪製UI的類,每個View對象都可以向Android架構註冊一個事件監聽器。每個事件監聽器都包含一個回呼函數(callback method),這個回呼函數(callback method)主要的工作就是回應或處理使用者的操作。

Event Listener: Click Listener例子

以「使用者觸碰(touch)」的動作來說,當View要處理使用者觸碰的事件時,就要向Android架構註冊View.OnClickListener事件監聽器;當「touch」事件發生時,Android架構便回調事件監聽器裡的回調函數。

View.OnClickListener是click listener,顧名思義,這是UI的「Click動作監聽器」;當使用者對View進行Click操作時(即觸控上的UI組件),Android架構便會回調這個View.OnClickListener的回調函數。

View.OnClickListerner的回呼函數為onClick()。

這裡所提到的監聽器泛指event listener,主要用來「監聽」使用者的各種動作。除了View.OnClickListener外,Android架構還有以下的event listener(及其callback method):

View.OnLongClickListener: onLongClick()

View.OnFocusChangeListener: onFocusChange()

View.OnKeyListener: onKey()

View.OnTouchListener: onTouch()

View.OnCreateContextMenuListener: onCreateContextMenu()

另外一種UI事件的機製為事件處理器(event handler),event handler與event listener是不一樣的處理機制。這個留著以後再研究。

以Android所提供的View.OnClickListener來說明程式實現方法。一個較為良好的實現方法是在Acitivty類裡實現View.OnClickListener介面,即:

public  class  YypClickListenerActivity  extends  Activity  implements  View.OnClickListener{  

  ...  

}  

上面的代碼用到了物件導向的介面技術,每一個View都可以註冊一個event listener,當Android架構收到「click」事件後,便回調event listener的callback method。以Button類為例,當我們想要處理使用者觸控按鈕事件時,就要調用Button類的setOnClickListener()方法來註冊click listener。上述的實現方法是,直接在的Activity類YypClickListenerActivity裡實現View.OnClickListener,因此上述Button類的click listener為「this」。如:

 

註冊click listener的程式碼如下:

Button button = (Button)findViewById(R.id.btn);  

button.setOnClickListener( this );  

在onCreate()裡先找到Button組件,它的click listener為this,接著在的Activity類裡實現onClick()。onClick()方法的代碼如下,我們以Toast類來回應資訊給使用者:

public  void  onClick(View v){  

    Toast.makeText( this , "http://www.linuxidc.com" ,Toast.LENGTH_LONG).show();   

}  

完整的代碼很簡單:

package  com.android;  

  import  android.app.Activity;  

import  android.os.Bundle;  

import  android.view.View;  

import  android.widget.Button;  

import  android.widget.Toast;  

  public  class  YypClickListenerActivity  extends  Activity  implements  View.OnClickListener{  

    /** Called when the activity is first created. */

      @Override

      public  void  onCreate(Bundle savedInstanceState) {  

        super .onCreate(savedInstanceState);  

        setContentView(R.layout.main);  

                  Button button = (Button)findViewById(R.id.btn);  

        button.setOnClickListener( this );  

    }  

          public  void  onClick(View v){  

        Toast.makeText( this , "http://www.linuxidc.com" ,Toast.LENGTH_LONG).show();   

    }  

}  

Android事件監聽器Event Listener

聯繫我們

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