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()
时间: 2024-10-07 08:14:01