增加新的Activity!
話先說在前頭
- 另外這是一篇筆記,不是一篇教學,所以我不會寫上所有的方式,我只會寫我用的方法。
- 本篇文章是參照[深入淺出 Android -- Google 手持設備應用程式設計入門]跟著做的,所以可能會省略一些說明,詳情請參閱原本的文章。
Activity可以分為兩種,獨立的Activity跟相依的Activity
獨立的Activity
獨立的Activity不需要跟其他的Activity相互交換資料,只要單純的用 startActivity 來啟動新的 Activity 就可以了。
相依的Activity
不同的Activity之間有資料的相互交換,又可以分為單向跟雙向兩種,Activity本身的資料會因為其他Activity的改變而改變。
現在我們來新增一個獨立的Activity,要新增獨立的Activity有幾件事情要做:
- 建立新的類別。
- 在 res/layout 裡面新增對應的xml檔案
- 在 Manifest.xml 新增新的 Activity 的描述
- 在原來的 Activity 中加入 startActivity 的呼叫
建立新的類別
- 在[Package Explorer]裡面點滑鼠右鍵,選[New\Other]
- 在[New]的視窗裡面選[Java\Class]
- 在[New Java Class]的[Name]裡面填入[Report]。
- 然後按下[Browse...],在[Superclass Selection]的[Choose a type:]輸入[activity],然後選擇[Activity - android.app]
- 選完之後,就會在[New Java Class\Superclass:]看到裡面填入了[android.app.Activity]了,這時候按下[Finish]就可以了。
- 然後我們就可以在[Package Explorer]看到我們新增的[Report.java]了。
- 然後將程式改成下面的樣子吧。
- package com.demo.android.bmi2;
- import android.app.Activity;
- import android.os.Bundle;
- public class Report extends Activity {
- @Override
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.report);
- }
- }
新增對應的xml檔案
- 先把 [res\layout\main.xml] 複製下來。
- 然後貼上
- 然後把[Copy of main.xml]改成[report.xml]
- 然後用[TextEditor]打開[report.xml]
- 然後將[report.xml]改成下面的樣子。
- <?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_height="wrap_content"
- android:layout_width="fill_parent"
- android:text="It's report"
- />
- </LinearLayout>
修改 Manifest.xml ,新增新的 Activity 的描述
- 用 [XML Editor] 打開 AndroidMainfest.xml
- 在 manifest\application\activity 點滑鼠右鍵新增一個 Element
- 在[New Element]視窗裡面輸入[activity]
- 然後在新增的[activity]上面新增[Attribute]
- 在[New Attribute]的[Name]裡面輸入[android:name],[Value]裡面輸入[Report]。
- 最後就會長的像這個樣子囉!
- 其實我們直接用[TextEdit]打開就會看到是下面這個樣子,下次直接手動新增可能會比較快一點。
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.demo.android.bmi2"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".Bmi2"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name="Report"></activity>
- </application>
- <uses-sdk android:minSdkVersion="7" />
- </manifest>
在原來的 Activity 中加入 startActivity 的呼叫
最後我們在原來計算的地方將程式改成呼叫 Report 這個 Class 就可以了。程式如下所示。- private OnClickListener calcBMI = new OnClickListener()
- {
- public void onClick(View v)
- {
- //Switch to report page
- Intent intent = new Intent();
- intent.setClass(Bmi2.this, Report.class);
- startActivity(intent);
- }
- };
這樣程式就完成了!按下計算之後就會跑出 report 的畫面。
沒有留言:
張貼留言