2012年1月25日 星期三

【Android】Activity介紹


Activity Android的基本處理單元,絕大多數的Activity都會有一個對應的頁面

在這裡所謂的頁面就是User在行動裝置上所看到的畫面(View)

回顧上一章的 Hello World程式:【Android】Hello World 範例  



我們在 /src org.sample.android.activity目錄下有一個Activity HelloWorldActivity.java 

它所對應的View即是 /res/layout/main.xml

AndroidManifest.xml 中可以看到如下這一段的XML標籤
<activity
        android:name=".HelloWorldActivity"
        android:label="@string/app_name" > <!— app_name 會註冊在 /res/values/strings.xml -->
        <intent-filter
            <action android:name="android.intent.action.MAIN" />
           <!— 以下這行指定此Activity為預設執行的主要Activity
  所以當你啟動虛擬機的時候一定會看到這支Activity所對應的View-->
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>


接著來稍微改寫 HelloWorldActivity以及它所對應的 main.xml,如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <!- 如果要在此ViewActivity中找到該元件,需要給它一個id
         android:id=”@+id/<name>” 如此會在R.java中產生一個對應的程式
         R.id.<name> 透過這行程式就可以找到你要的元件-->
    <TextView android:id="@+id/TextView01"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    
    <Button android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_text" />
</LinearLayout>

fill_parent:意指將該元件填滿它的父元件
wrap_content:意指該元件會完全包住它的所有內容(元件)

接著來看看 HelloWorldActivity.java 

package org.sample.android.activity;

import android.app.Activity;
import android.os.Bundle;

public class HelloWorldActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    //透過 findViewById(R.id.) 找出你要的元件
        Button button01 = (Button)findViewById(R.id.Button01)
    }
}

接著可以看下一篇 
Activity 的生命週期

沒有留言:

張貼留言