1. 程式人生 > >activity之間跳轉

activity之間跳轉

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();