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.javapackage 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」。
阅读(745) | 评论(0) | 转发(0) |