Intent 中重要方法:setAction()、setData()、setType()、putExtra()


Intent大致分為兩種:顯式Intent和隱式Intent。

一、顯示Intent為從一個activity跳轉到另一個activity。如:

 

Intent intent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(intent);

二、隱式Intent它不明確指出我們想要啟動哪一個活動,而是指定了一系列更為抽象的action和category等信息來過濾,找到符合條件的Activity。

1.setAction():表明我們想要啟動能夠響應設置的這個action的活動,並在清單文件AndroidManifest.xml中設置action屬性。如:(打開一個撥號界面)

Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
startActivity(intent);
/**
 * 以上代碼也可以直接寫為:
 * Intent intent = new Intent(Intent.ACTION_DIAL);
 * startActivity(intent);
 */
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <action android:name="android.intent.action.DIAL"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

結果:打開一個撥號界面

2.setData():通常是URI格式定義的操作數據。(只要設置setAction ()就要在清單文件AndroidManifest.xml中設置action屬性)例如:tel:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
/**
 * 以上代碼也可以直接寫為:
 * Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:10086"));
 * startActivity(intent);
 */
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <action android:name="android.intent.action.DIAL"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

結果如圖:

3.setType():指定數據類型,選出適合的應用來。(只要設置setAction ()就要在清單文件AndroidManifest.xml中設置action屬性)例如:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("text/plain");
startActivity(intent);
/**
 * 以上代碼也可以直接寫為:
 * Intent intent = new Intent(Intent.ACTION_SEND);
 * intent.setType("text/plain");
 * startActivity(intent);
 */
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <action android:name="android.intent.action.SEND"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

結果如圖:

4.putExtra():把要傳遞的數據暫存在Intent中,啟動了另一個活動后,只需要把這些數據再從Intent中取出就可以了。

文章來自個人博客:Intent 中重要方法:setAction()、setData()、setType()、putExtra()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM