Activity跳轉方式總結

2021-07-26 07:46:53 字數 2713 閱讀 2186

自我感覺這裡的排版看著更舒服些。activity跳轉方式總結

方法一:

intent intent=new intent(本類,將要跳轉的類); //intent intent=new intent(mainactivity.this,jumptoactivity.class);

startactivity(intent);

方法二:

intent intent2=new intent();

intent2.setclass(本類,將要跳轉的類); // intent2.setclass(mainactivity.this,jumptoactivity.class);

startactivity(intent2);

方法三:(此方式可用於開啟其它的應用)

intent intent2=new intent();

intent2.setcomponent(new componentname(mainactivity.this, jumptoactivity.class));

startactivity(intent2);

component,目標元件的包或類名稱(完整類名):

在使用component進行匹配時,一般採用以下幾種形式:

intent.setcomponent(new componentname("com.liujc.test", "com.liujc.test.jumptoactivity"));

通過action跳**

intent intent = new intent();  

intent.setaction("con.liujc.test.jump");

startactivity(intent);

需要將要跳轉到的activity在androidmanifest.xml中設定action:

android:name=".jumptoactivity" >

android:name="con.liujc.test.jump"/>

android:name="android.intent.category.default" />

intent-filter>

activity>

通過scheme跳轉協議跳**

scheme://host:port/path模式://主機:埠/路徑

完整的url scheme協議格式:liujc://goods:8080/goodsdetail?goodsid=20170112

上面的路徑 scheme、host、port、path、query全部包含:

url scheme如何使用:

在androidmanifest.xml中對標籤增加設定scheme:

android:name=".goodsdetailactivity"

android:scheme="liujc"

android:host="goods"

android:path="/goodsdetail"

android:port="8080"/>

android:name="android.intent.category.default"/>

android:name="android.intent.action.view"/>

android:name="android.intent.category.browsable"/>

intent-filter>

activity>

獲取scheme跳轉的引數:

uri uri = getintent().getdata();

if (uri !=

null)

呼叫方式:

網頁上:(使用系統自帶瀏覽器或者谷歌瀏覽器)

開啟商品詳情

原生呼叫:

intent intent = new intent(intent.action_view,uri.parse("liujc://goods:8080/goodsdetail?goodsid=20170112")); 

startactivity(intent);

如何判斷乙個scheme是否有效,有效後再啟動:

packagemanager packagemanager = getpackagemanager();

intent intent = new intent(intent.action_view, uri.parse("liujc://goods:8080/goodsdetail?goodsid=20170112"));

listactivities = packagemanager.queryintentactivities(intent, 0);

boolean isvalid = !activities.isempty();

if (isvalid)

Activity跳轉傳值的方式

一 普通的intent的傳值,oneactivity中intent.putextra twoactivity中intent.get extra 二 通過startactivityforresult onactivityresult setresult oneactivity中startactivit...

Activity的幾種啟動跳轉方式

一.顯示呼叫方法 intent intent new intent this,otheractivity.class 方法1 intent intent2 new intent intent2.setclass this,otheractivity.class 方法2 intent2.setclas...

非Activity下跳轉Activity的問題

override public void startactivity intent intent,bundle options mmainthread.getinstrumentation execstartactivity activity null,intent,1,options 避免這種異常...