這裡我們要介紹的控制項Button, 再複雜的人機介面程式都是包含 Button 的幾個控制項與邏輯堆疊而成. 從底下介紹你可以觀察 Android 應用程式的幾個組成份子, 包括配置主畫面的 xml 檔案 > 撰寫主程式 > 建立控制項的方法與程式碼 到最後為控制項加入處理的方法 (加入事件監聽)以實現預期邏輯與結果.
範例說明 :
主畫面配置幾個 android.widgetButton 控制項, 每個 Button 按下去後顯示另外的畫面來示範特殊控制項的操作.
範例代碼 :
- main.xml
- "1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android" - android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- android:id="@+id/btn_Button"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="按鈕控制項">
- ControlItemsDemo.java 代碼 : 主程式的 Activity
- package john.controlitems.demo;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class ControlItemsDemo extends Activity {
- private Button btn_Button;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- findViews();
- addListener();
- }
- protected void findViews(){
- btn_Button = (Button)findViewById(R.id.btn_Button);
- }
- protected void addListener(){
- btn_Button.setOnClickListener(new Button.OnClickListener(){
- @Override
- public void onClick(View v) {
- Intent intent_CheckBox = new Intent();
- intent_CheckBox.setClass(ControlItemsDemo.this, SampleButton.class);
- startActivity(intent_CheckBox);
- }
- });
- }
- }
- SampleButton.java 代碼 : 顯示範例 Button 的 Activity
- package john.controlitems.demo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- public class SampleButton extends Activity {
- private Button btn_Click;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.sample_button);
- setTitle("This is demo for Button Activity");
- findViews();
- addListener();
- }
- protected void findViews(){
- /*使用 findViewById() 傳入 Button 的 id 以取得畫面上Button 的實體 */
- btn_Click = (Button)findViewById(R.id.btn_Click);
- }
- protected void addListener(){
- /**
- * 取的Button 實體後呼叫 setOnClickListener 來登記按鈕事件, 並傳入的參數為
- * 一個 in-line 的類別定義實體, 直接定義類別並實體化它. 因為這個類別並不會
- * 給其他類別使用, 所以並不需要指定變數名稱給他. 而該類別的定義中只有一個覆
- * 寫的方法就是 onClick. 其動作只是單存的改變目前Activity 的標題.
- */
- btn_Click.setOnClickListener(new Button.OnClickListener(){
- @Override
- public void onClick(View v) {
- setTitle("Button being clicked!!!!");
- }
- });
- }
- }
- sample_button.xml : 範例Button Activity 的 xml 描述檔
- "1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android" - android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- android:id="@+id/btn_Click"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Click me...Click me...">
- AndroidManifest.xml : 註冊 範例Button Activity
- "1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android" - package="john.controlitems.demo"
- android:versionCode="1"
- android:versionName="1.0">
"@drawable/icon" android:label="@string/app_name">".ControlItemsDemo" - android:label="@string/app_name">
"android.intent.action.MAIN" />"android.intent.category.LAUNCHER" />".SampleButton" >
顯示範例結果 :
- Step1 : 開啟程式畫面, 點擊按鈕 "按鈕控制項" 進入範例Button Activity
- Step2 : 點擊按鈕 "Click me...Click me..." 後變更Activity 標頭.
(標題變更)
沒有留言:
張貼留言