[转]Jollen 的 Android 教學,#16: Event Listener的用法: 以Click Listener為例

原文地址: http://www.jollen.org/blog/2009/06/jollen-android-programming-16.html

 

Event Listener的用法: 以Click Listener為例

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

import android.view.View;
  
public class HelloClickListener extends Activity implements View.OnClickListener {
   ...
}

每一個View都可以註冊一個event listener,當Android框架收到「click」事件後,便回呼event listener的callback method。以Button類別(按鈕元件)為例,當我們想要處理使用者觸控按鈕的事件時,就要呼叫Button類別的setOnClickListener()方法來註冊click listener。上述的實作方方法是,直接在我們的Activity類別HelloClickListener裡實作View.OnClickListener,因此上述Button類別的click listener為「this」。

上述的實作觀念,可用圖1來表示。

[转]Jollen 的 Android 教學,#16: Event Listener的用法: 以Click Listener為例_第1张图片
圖1: HelloClickListener類別實作View.OnClickListener介面

註冊click listener的程式碼如下:

   public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        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,
                "Yes.",
                Toast.LENGTH_LONG).show();  
    }

完整程式碼: HelloClickListener.java

package com.moko.helloclicklistener;
   
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import android.view.View;
   
public class HelloClickListener 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,
                "Yes.",
                Toast.LENGTH_LONG).show();  
    }
}

執行結果

[转]Jollen 的 Android 教學,#16: Event Listener的用法: 以Click Listener為例_第2张图片
圖2: HelloClickListener的執行結果

當使用者觸碰畫面上的按鈕時,便以Toast類別在畫面上顯示「Yes」。

--jollen

你可能感兴趣的:(android,框架,Class,callback,import,button)