在 Android 中按鈕的產生和操作是由 Button 類別來實作, Button 可由 xml 事先定義好的方式產生,也可以在程式碼中直接建立,建立完成後必須寫出該按鈕的監聽器,並在監聽器中寫入特定方法,修改 MainActivity.java ,加入按鈕如下
MainActivity.java
1: package com.example.helloworld;
2:
3: import android.app.Activity;
4: import android.content.Context;
5: import android.content.Intent;
6: import android.graphics.Typeface;
7: import android.os.Bundle;
8: import android.view.Gravity;
9: import android.view.View;
10: import android.view.View.OnClickListener;
11: import android.widget.Button;
12: import android.widget.TextView;
13:
14: public class MainActivity extends Activity {
15:
16: static final String tLog = "Trace Log";
17:
18: TextView tv; // init by xml use
19:
20: Button bYes; // enter button
21: Button bNo; // exit button
22:
23: @Override
24: public void onCreate(Bundle savedInstanceState) {
25:
26: super.onCreate(savedInstanceState);
27:
28: initByXml();
29:
30: }
31:
32: void initByXml() {
33: setContentView(R.layout.activity_main);
34: // TextView init
35: tv = (TextView) findViewById(R.id.textView1);// why can't cast to
36: // TestTextView
37: tv.setTextColor(0xff888888); // set color
38: tv.setTextSize(18.0f); // set size
39: tv.setTypeface(Typeface.SERIF);// set typeface
40: tv.setText(R.string.copy_right);// change text
41: tv.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
42:
43: // ButtonYes init
44: bYes = (Button) findViewById(R.id.buttonYes); // get ButtonYes
45: OnClickListener bYesOc = new OnClickListener() { // build ButtonYes Listener
46:
47: @Override
48: public void onClick(View v) {
49: // TODO Auto-generated method stub
50:
51: Intent goAct = new Intent();// new a Intent
52: goAct.setClass(MainActivity.this, GetDisplaySize.class); // set class
53: startActivity(goAct); // start another Activity
54: finish(); // exit program
55: }
56: };
57: bYes.setOnClickListener(bYesOc);// set ButtonYes Listener
58:
59: // ButtonNo init
60: bNo = (Button) findViewById(R.id.buttonNo); // get ButtonNo
61: bNo.setOnClickListener(new OnClickListener() { // build ButtonNo Listener
62:
63: @Override
64: public void onClick(View v) {
65: // TODO Auto-generated method stub
66:
67: finish(); // exit program
68:
69: }
70: });
71:
72: }
73:
74: }
第 20 ~ 21 行為加入的按鈕,其詳細定義在 xml 中, 由於 MainActivity.java 會修改為版權宣告流程, 當繼續 (bYes) 按鈕按下,就會進入下一個流程, 而離開(bNo)按鈕按下,就會離開程序
第 28 行 initByXml(); 為初始化的動作,在該流程中需要的元件都會在這初始化
第 33 行套用 R.layout.activity_main 的佈局
第 35 ~ 41 行為 TextView 的使用,其內容( R.string.copy_right )為版權聲明
第 44 行取得在佈局中的按鈕(R.id.buttonYes),並指定給 bYes
第 45 行使用匿名內部類別建立 bYesOc 監聽器
第 48 行覆寫 onClick(View v) 方法,並在其中加入按下按鈕觸發的事件
第 51 行建立 Intent goAct = new Intent(); 用來啟動另 1 個 Activity
第 52 行 goAct.setClass(MainActivity.this, GetDisplaySize.class); 第1個參數為當前的 Activity而第 2 個參數為想啟動的 Activity
第 53 行啟動 Activity
第 54 行結束目前的 Activity
第 57 行讓 bYes 按鈕套用 bYesOc 監聽器內容
第 60 ~ 70 行為 bNo 按鈕的設定
第 61 行直接在 setOnClickListener 方法中建立監聽器
第 67 行結束程序,這種結束程序是指關閉 Activity ,如果有多 Activity 在執行或切換時,建議使用 System.exit( ) 方法
結果為
按了繼續之後,跳到 GetDisplaySize 類別
按了離開之後,結束程序回到桌面
0 意見:
張貼留言