Android 學習之 Activity

jopen 10年前發布 | 14K 次閱讀 Activity Android開發 移動開發

活動(Activity)是最容易吸引到用戶的地方了,它是一種可以包含用戶界面的組件, 主要用于和用戶進行交互。一個應用程序中可以包含零個或多個活動。

創建 Activity

 public class FirstActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.first_layout);//給當前的活動加載一個布局
            requestWindowFeature(Window.FEATURE_NO_TITLE);//不在活動當中顯示標題欄
        }
}

創建 Activity 只需要繼承 Activity 類,并且可以重寫 onCreate 方法。

在 res/layout 目錄下創建布局文件 XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <Button
            android:id="@+id/button_1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button 1"
            />
    </LinearLayout>

最后一步在 AndroidManifest 文件中注冊

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.activitytest"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk
            android:minSdkVersion="14"
            android:targetSdkVersion="19" />
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".FirstActivity"
                android:label="This is FirstActivity" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
            </activity>
        </application>
</manifest>

活動當中使用 Toast

Toast 是 Android 系統提供的一種非常好的提醒方式,在程序中可以使用它將一些短小的 信息通知給用戶,這些信息會在一段時間后自動消失,并且不會占用任何屏幕空間,我們現 在就嘗試一下如何在活動中使用 Toast。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.first_layout);
        Button button1 = (Button) findViewById(R.id.button_1);
        button1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(FirstActivity.this, "You clicked Button 1",
                        Toast.LENGTH_SHORT).show();
} });
}

使用 Intent 給 Activity 傳遞消息

創建第二個布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <Button
            android:id="@+id/button_2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button 2"
            />
    </LinearLayout>

創建第二個 Activity:

public class SecondActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.second_layout);
        }
}

注冊 Activity:

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".FirstActivity"
            android:label="This is FirstActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SecondActivity" >
        </activity>
    </application>

Intent 的用法大致可以分為兩種:

  • 顯式 Intent
  • 隱式 Intent
  • </ul>

    最簡單的方式創建(顯示):

    Intent intent = new Intent(this, SecondActivity.class);
    startActivity(intent);

    隱式使用略,以后詳細學習。

    活動的生命周期

    Android 中的活動是可以層疊的。 我們每啟動一個新的活動,就會覆蓋在原活動之上,然后點擊 Back 鍵會銷毀最上面的活動, 下面的一個活動就會重新顯示出來。

    其實 Android 是使用任務(Task)來管理活動的,一個任務就是一組存放在棧里的活動 的集合,這個棧也被稱作返回棧(Back Stack)。每當我們啟動了一個新的活動,它會在返回棧中入棧,并處于棧頂的位置。而每當我們按下 Back 鍵或調用 finish() 方法去銷毀一個活動時,處于棧頂的活動會出棧,這時前一個入棧的活動就會重新處于棧頂的位置。系統總是會顯示處于棧頂的活動給用戶。

    每個活動在其生命周期中最多可能會有四種狀態。

    • 運行狀態:活動位于返回棧的棧頂時,這時活動就處于運行狀態。
    • 暫停狀態:當一個活動不再處于棧頂位置,但仍然可見時,這時活動就進入了暫停狀態。例如,被彈出層覆蓋的頁面。
    • 停止狀態:當一個活動不再處于棧頂位置,并且完全不可見的時候,就進入了停止狀態。
    • 銷毀狀態:當一個活動從返回棧中移除后就變成了銷毀狀態。
    • </ul>

      Activity 類中定義了七個跟生命周期相關的方法

      • onCreate():活動第一次被創建的時候調用。
      • onStart():這個方法在活動由不可見變為可見的時候調用。
      • onResume():這個方法在活動準備好和用戶進行交互的時候調用。此時的活動一定位于返回棧的棧頂,并且處于運行狀態。
      • onPause():這個方法在系統準備去啟動或者恢復另一個活動的時候調用。
      • onStop():這個方法在活動完全不可見的時候調用。
      • onRestart():這個方法在活動由停止狀態變為運行狀態之前調用,也就是活動被重新啟動了。
      • onDestroy():這個方法在活動被銷毀之前調用,之后活動的狀態將變為銷毀狀態。
      • </ul>

        完整的生命周期圖:

        【參考資料】

        1. 第一行代碼
        2. </ol>

          ---EOF---

          </article>

          來自: http://renchx.com/andriod-activity/

          </code></code></code></code></code></code></code></code>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!