activity之間跳轉
阿新 • • 發佈:2018-12-31
1、顯示跳轉
跳android系統定義Activity方法
/**
* 顯示跳轉至撥號器
*/
public void click3(View v){
Intent intent = new Intent();
//指定目標Activity的包名和類名
intent.setClassName("com.android.dialer", "com.android.dialer.DialtactsActivity");
startActivity(intent);
}
/**
* 顯式跳轉至瀏覽器
*/
public void click6(View v){
Intent intent = new Intent();
intent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
startActivity(intent);
}
跳自定義Activity方法
/**
* 跳轉至secondActivity
* 在本應用中跳轉
* 顯示跳轉:直接指定目標Activity的包名和類名
* @param v
*/
public void click2(View v){
Intent intent = new Intent();
//cls:直接指定目標Activity的類名
//顯示意圖
intent.setClass(this, SecondActivity.class);
startActivity(intent);
}
/**
* 跳轉至secondActivity
* 在本應用中跳轉
* 顯示跳轉:直接指定目標Activity的包名和類名
* @param v
*/
public void click2(View v){
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
2、隱式跳轉
跳android系統定義activity
/**
* 跳轉至打電話activity
* 跳轉至其他應用的activity
* 隱式跳轉:通過指定action和data
* @param v
*/
public void click1(View v){
Intent intent = new Intent();
//隱式意圖
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:110"));
//跳轉
startActivity(intent);
}
/**
* 隱式跳轉至撥號器
*/
public void click4(View v){
Intent intent = new Intent();
//隱式設定撥號器的動作
intent.setAction(Intent.ACTION_DIAL);
startActivity(intent);
}
/**
* 隱式跳轉至瀏覽器
* @param v
*/
public void click7(View v){
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
隱式跳自定義activity
public void click7(View v){
Intent intent = new Intent();
intent.setAction("android.intent.action.thirdActivity");
startActivity(intent);
}
//可以不寫,在預設情況下;否則要與清單檔案匹配
intent.addCategory("android.intent.category.DEFAULT");
至少要在跳轉的activity中配置action 、category
<activity
android:name="com.qishui.activity.ThirdActivity"
>
<intent-filter>
<action android:name="android.intent.action.thirdActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
在清單檔案中意圖匹配中還可以新增
<data android:scheme="qishui" />
在意圖跳轉時需要加上
//qishui字首
intent.setData(Uri.parse("qishui:10086"));
如果配置了
<data android:mimeType="text/account" />
那就要
//設定型別
intent.setType("text/account");
如果一起設定了
<data android:scheme="qishui" android:mimeType="text/account" />
在意圖中需要使用
intent.setDataAndType(Uri.parse("qishui:10086"), "text/account");
在跳轉至的activity中獲取傳遞過來的資料
Intent intent = getIntent();
String data = intent.getDataString();