編程教學(二) - Activity 簡介及簡單Button例子

隨身數碼 於 24/09/2011 發表 收藏文章
本文是第二篇的Android 教學.

第一篇

在此聲明本人學寫Android Apps只有很短時間, 以下的教學大多是自己經驗加上網上搜來再整理的, 說不上專業, 但希望能夠幫助剛剛學寫或希望寫Android Apps 的朋友, 有錯請指正.

Android App 最基本第一個要說就是Activity,基本上Activity 可以說是一個"畫面". Activity 有四種狀態:

  1. Active/Running : Activity 在螢幕疊的最上方
  2. Paused : Activity 仍可在螢幕上看到(遮了一半或半透明的狀態, 多數是有Pop up, e.g.Alert Dialog ,彈出的時候)
  3. Stopped : Activity 不再顯示螢幕上 , 被完全遮敝, 但所有資料仍儲在Memory 上
  4. Kill: Activity 被系統殺死, Memory 放出資料

一個Activity 主要既流程可以到http://developer.android.com/guide/topics/fundamentals/activities.html 會有更詳細既說明

一個Activity 上會所有的Button , Text , CheckBox 等稱為View , View 之上其實會有一個Layout 去控制所有View 的位置及其他特性.簡單說一個簡單Application 架構是這樣: Application > Activity > Layout > View. Android 可以由Java Code 去控制Button , Text 等在Activity 上既出現, 另一個做法係編寫.xml. Eclipse 提供一個Graphical Interface 方便用戶去設計所有View 的位置, 同一時間Eclipse 會產生對應的.xml.

以下做一個簡單的App 去實現Button , TextView 等

開一個新Android Project , File>New>AndroidProject

Project Name: HelloWorld
PackName: com.helloworld


於Project Explorer , Right Click剛剛的Project > Run> Run Configuration> Target 選擇目標VM


之後按 Run 會彈出VM,unlock Android 之後應該會出現Hello 字句,可以保留VM
返回Eclipse>Project Explorer > HelloWorld > res> layout> main.xml, 右面應該看到Graphical Interface, 可以在Form 選擇Button 並拉入去



Double Click Button 彈到XML 碼的一頁,可以看到最外層是LinearLayout之後下面有一個TextView 及剛剛創造的Button
修改TextView 入面的 android:id 為 "@+id/message" 及 Button 的 android:id 為 "@+id/mybutton".這裡可以修改Button 顯示的字句,修改Button 入面的 android:text="Click me"


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:id="@+id/message"
/>
<Button
android:text="Click Me"
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
></Button>
</LinearLayout>



到Eclipse > Project Explorer> HelloWorld >src> com.helloworld> HelloWorldActivity.java
找到OnCreate , 這裡是Activity Initalize 的地方, 把以下的全部copy and paste 到整個HelloWorldActivity



package com.helloworld;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class HelloWorldActivity extends Activity {
/** Called when the activity is first created. */
private Button MyButton;
private TextView Message;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

MyButton=(Button)findViewById(R.id.mybutton);
Message=(TextView)findViewById(R.id.message);

MyButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Message.setText("Hi!!Hello World!!!!");
}}
);
}
}


以下是上面Code的詳細說明
以下的是Android 一些package/ library

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


創造了兩個Variable一個係Button 類的mMybutton , 一個係TextView類mMessage, 並於OnCreate內以
FindViewById () 找到他們與xml 部份,建立"connection"


private Button MyButton;
private TextView Message;
.
.
.
MyButton=(Button)findViewById(R.id.mybutton);
Message=(TextView)findViewById(R.id.message);


其實在左面Project Explorer > HelloWorld>gen 可以找到R.java , 這個是Eclipse 自己根據main.xml 產生出來,不用多理,以後想連到 layout , View 等只要用 R.layout.XX 或 R.id.XX 去找即可


以下是把MyButton Set 一個onClickListener , onClickListener的作用就是只要MyButton 被Click 的時侯就會觸發. 把想觸發的事件寫入OnClick


MyButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
Message.setText("Hi!!Hello World!!!!");
}}
);


嘗試Run HelloWorld Project



留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→