首页 > 代码库 > Intent 中重要方法:setAction()、setData()、setType()、putExtra()

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

 

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