https://github.com/zytc2009/BigTeam_learning
分类: Java
2010-10-19 13:30:37
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」。
什麼是樣式(Styles)?
Android的樣式設計(style)是一個很重要的功能,因為它可以讓應用程式裡的元件(widget)「長」得跟別人很不一樣。樣式設計的使 用規定如下:
Android的styles功能,主要的對象是widget,樣式是為了套用到widget上;另外Android還提供佈景(theme)功 能,可以做更大範圍的套用。
如何定義樣式
定義樣式的方式如下:
1. 在Android專案的「res/values」資料夾裡建立styles.xml樣式定義檔。如圖1。
圖1: 建立styles.xml
2.在styles.xml裡定義樣式,以下是一個範例:
styles.xml的寫法說明如下:
1. 在 修改AndroidManifest.xml,在 執行結果: 在這個範例裡,我們並沒有修改任何的程式碼,其原理是透過佈景設定的方法。定義佈景的方式與定義樣式(styles)相同,同樣是在
styles.xml裡以 以下是使用HelloTheme的說明: 1.
佈景除了能套用到應用程式外,也能套用到activity。如何套用佈景到activity呢?只要在
android:versionCode="1"
android:versionName="1.0.0">
圖1: HelloTheme的執行結果
2. 在