我們曾經在其他文章中為大家詳細介紹了一些可視化編程以及基於介面的編程方法,那麼今天大家將會瞭解到有關Android Button的具體應用,以此更進一步加深對介面編程的認知程度。
- Android進度條相關應用技巧解析
- Android鍵盤操作相關技巧分享
- Android模擬器具體作用淺談
- Android列表框應用技巧講解
- Android構造塊類別總結
Android 介面編程有兩種基本的方法,一種是在代碼中,動態建立一個個組件,及把這些組件用Layout來進行組合成複雜的介面展現。一種是用圖形化的方式來編寫 布局Layout,這些布局被儲存在XML檔案中,會編譯成資源,被程式中的Activity來載入setContentView()), 再通過findViewById方式來獲得每一個介面組件的引用進行操作。對於大多數人來說,喜歡最直觀的方式,既代碼中動態產生的方式。我們就先從這裡說起,至於可視化編程及布局資源的方式以後專門來講述。
一,Android Button布局管理Layout)
每一個介面組件都是View的子類,都可以單獨佔用一個螢幕,但是真正的有用的介面都是這些組件的組合,在Android中都是用各種Layout來進行布局管理,這與傳統的J2SE中的一些AWT,SWING介面方式基本相同,這裡就不多說。
二,Android Button一個單獨的介面元素:
在前面說到Hello World例子中,講過這樣一段代碼。在Activity中.
- public class HelloActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- TextView tv = new TextView(this);
- tv.setText("Hello, World!");
- this.setContentView(tv);
- }
- }
這裡並沒有用到Layout,這就是單獨的組件方式。也可以改為:
- super.onCreate(savedInstanceState);
- Button btn = new Button(this);
- btn.setText("TestButton");
- this.setContentView(btn);
編譯運行,會有一個全屏的Button,當然這不是你想要的實用的介面.那我們就用Layout來布局
- super.onCreate(savedInstanceState);
- Button btn = new Button(this);
- btn.setText("TestButton");
- Button btn2 = new Button(this);
- btn2.setText("TestButton2");
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- layout.addView(btn);
- layout.addView(btn2);
- this.setContentView(layout);
編譯運行,你就可以看到了兩個上下排列的Android Button,當然對於布局管理器的使用,做過PC 上AWT,SWING的人都不陌生,這裡就不贅述。
那如何響應事件呢: 大家猜一猜?想必大家不難猜到,在AWT中,在手機的J2ME中,都是用Listener 來處理事件響應,Android也未能脫俗。這與Blackberry,Symbian中的Observer是同一個道理。都是使用了設計模式的觀察者模式。下面來看一個能響應事件的例子。
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.LinearLayout;
- public class HelloActivity extends Activity implements OnClickListener {
- Button btn = null;
- Button btn2 = null;
- public void onClick(View v) {
- if (v == btn)
- {
- this.setTitle("You Clicked Button1");
- }
- if (v == btn2)
- {
- this.setTitle("You Clicked Button2");
- }
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- btn = new Button(this);
- btn2 = new Button(this);
- btn.setText("TestButton1");
- btn2.setText("TestButton2");
- btn.setOnClickListener(this);
- btn2.setOnClickListener(this);
- LinearLayout layout = new LinearLayout(this);
- layout.setOrientation(LinearLayout.VERTICAL);
- layout.addView(btn);
- layout.addView(btn2);
- this.setContentView(layout);
- }
- }
Android Button操作步驟是:
一,產生兩個Button,配置Click事件監聽者為HelloActivity ,此類實現了OnClickListener介面。
二,放入布局,按布局顯示兩個Button
三,按下其中一個Button,產生Click事件,調用HelloActivity 的OnClick介面函數。
四,對於View參數的值,判斷是哪個View(Button)。改寫Activity的Titile內容。注意,可別去對比View.getId(),預設情況下,每個組件的Id值都為-1,除非人為設定Id值,用可視化編程時,為自動為其產生一個Id值。