- 论坛徽章:
- 0
|
Jollen 的 Android 教學,#16: Event Listener的用法: 以Click Listener為例
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來表示
![]()
圖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();
}
}
執行結果
![]()
圖2: HelloClickListener的執行結果
當使用者觸碰畫面上的按鈕時,便以Toast類別在畫面上顯示「Yes」。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14644/showart_1985117.html |
|