Activity使用Intent啓動另外一個Activity

android使用,從一個Activity(界面)跳轉到另外一個Activity時,須要使用到Intent來啓動Activity。在Intent使用時,分爲顯式調用和隱式調用2類,顯式調用就是直接調用另外一個Activity的class類,隱式調用須要經過調用另外一個Activity的action 來啓動另外一個Activity,詳細以下: android

Intent在android中的定義爲:public Intent (Context packageContext , Class<?> cls); this

一、顯式調用---直接調用Activity的Class類 spa

例,Activity1調用Activity2 xml

Intent intent = new Intent(this , Activity2.class); it

startActivity(intent); io

二、隱式調用 class

Activity1隱式調用Activity2時須要在AndroidManifest.xml文件中配置Activity2的action和category,具體添加下面的代碼到Activity2的定義中 配置

<intent-filter> activity

<action android:name="myaction2"/> filter

<category android:name="android.intent.category.DEFAULT"/>

<category android:name="mycategory" />

</intent-filter>

接着一樣使用intent來啓動Activity,代碼以下:

Intent intent = new Intent("myaction2");

startActivity(intent);

這樣就能夠啓動Activity2

注:在使用intent隱式調用Activity時會遇到多個Activity的intent-filter中的action和category相同時,這時android會先彈出一個選擇界面的窗口,顯式要啓動的Activity列表,根據用戶的選擇來啓動Activity,如Activity2和Activity3的action和category相同

<Activity android:name=".Activity2">

<intent-filter>

<action android:name="myaction2"/>

<category android:name="android.intent.category.DEFAULT"/>

<category android:name="myCategory" />

</intent-filter>

</Activity>

<Activity android:name=".Activity3">

<intent-filter>

<action android:name="myaction2"/>

<category android:name="android.intent.category.DEFAULT"/>

<category android:name="myCategory" />

</intent-filter>

</Activity>

啓動Activity代碼以下:

Intent intent = new("action2");

intent.addCategory("myCategory");

startActivity(intent);

這時就會彈出Acvity的選擇窗口,選擇啓動activity2仍是activity3

 

使用intent 來啓動activity的用法就簡單介紹這些,後續會對intent進行詳細想研究

相關文章
相關標籤/搜索