1. 程式人生 > >Android Activity之間的跳轉

Android Activity之間的跳轉

  • Activity之間的跳轉需要用到Intent(意圖)元件,通過Intent可以開啟新的Activity實現介面跳轉功能。
  • Intent被稱為意圖,是程式中各元件進行互動的一種重要方式,它不僅可以指定當前元件要執行的動作,還可以在不同元件之間進行資料傳遞。根據開啟目標元件的方式不同,Intent被分為顯式意圖隱式意圖兩種型別。

  顯式意圖:

   顯式意圖可以直接通過名稱開啟指定的目標元件,通過其構造方法Intent(Context packageContext , Class<?> cls)來實現,第一個引數為Context表示當前的Activity物件,第二個引數Class表示要啟動的目標Activity,通過這個方法建立一個Intent物件,然後將該物件傳遞給Activity的startActivity(Intent intent)方法即可啟動目標元件。示例程式碼如下:

//從當前頁面跳轉到Activity02介面
Intent intent = new Intent(this,Activity02.class);    //建立Intent物件
startActivity(intent);    //開啟Activity02

  隱式意圖:

   隱式意圖相比顯示意圖來說更為抽象,它並沒有明確指定要開啟哪個目標元件,而是通過指定action和category等屬性資訊,系統根據這些資訊進行分析,然後尋找目標Activity。其示例如下:

Intent intent = new Intent();
//設定action動作,該動作要和清單檔案中設定的一樣
intent.setAction("cn.START_ACTIVITY");
startAvtivity(intent);

  上述程式碼中,只指定了cation,並沒有指定category,這是因為在目標Activity的清單檔案中配置的category只是一個預設值,在呼叫startActivity()方法時,自動將這個category新增到Intent中。接下來還需要在目標Activity的清單檔案中配置    ,指定當前Activity能夠響應的action和category,示例程式碼如下:

<activity android:name="cn.Activity02">
            <intent-filter>
                <
action android:name="cn.START_ACTIVITY" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>

  在清單檔案中,目標元件Activity02指定了可以響應的<action>和<category>資訊,只有當action和category屬性與目標元件設定的內容相同時,目標元件才會被開啟。需要注意,每個Intent只能指定一個cation,卻能夠指定多個category。