Intent--显示意图和隐式意图
2015-10-17 18:10
411 查看
一:显示意图
显式意图:调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。例如通过意图跳转到另一个Activity的两种方式:
1:第一种方式跳转的显式意图
Intent intent = new Intent(); intent.setClassName("待启动Activity的包名","待启动Activity的完整类路径")//包名getPackageName() intent.putExtra("name",name);//通过意图传递数据 startActivity(intent);//跳转到另一个Activity
2:第二种方式跳转的显式意图
Intent intent = new Intent(context,AnotherActivity.class);//第二个参数是待启动Activity的类的反射 intent.putExtra("name",name);//可通过意图向另一个Activity传递数据 startActivity(intent);//跳转到另一个Activity
另一个Activity中:
Intent intent1=getIntent();//获取传递过来的意图 intent.getStringExtra("name");//获取前一个Activity传递过来的数据
二:隐式意图
隐式意图:没有明确指定组件名的Intent为隐式意图。 Android系统会根据隐式意图中设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。例如给某个Activity定义隐式意图:在清单文件中的该Activity标签中创建意图过滤器:
<intent-filter> <action android:name="android.intent.yinsiyitu.action"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="application/person"/> <data android:scheme="jianren" android:host="www.ggl.com"/> </intent-filter>
另一个Activity通过上面的Activity定义的意图过滤器访问上面的Activity:
Intent intent = new Intent(); intent.setAction("android:intent.yinsiyitu.action"); intent.addCategory(Intent.CATEGORY_DEFAULT); //intent.setData(Uri.parse(jianren://www.ggl.com));//会清除前面所有set的type //intent.setType("application/person");//会清除前面所有的set的data //这是setData和setType两全的方法,另外如果上面的Activity定义了host,则这里一定也要指定 intent.setDataAndType(Uri.parse("jianren://www.ggl.com"),"application/person"); //如果上面的Activity没有定义host,则Uri.parse("jianren:");至少要写到冒号,不可以只写Uri.parse("jianren") startActivity(intent);
相关文章推荐
- 如何将java web项目上线/部署到公网
- DFS之Restore IP Addresses
- 数据结构-排序
- VB读取XML文件,selectNodes获取节点属性
- LINUX 环境下源码方式安装mysql(二)my.cnf配置细节详解
- git服务器简易搭建法
- 在CentOS上搭建PHP服务器环境
- Submitted credentials for token did not match the expected credentials.
- 结伴编写程序
- 程序设计及总结
- C#指针转换
- 深度学习如何提取特征
- Java String
- Caused by: java.net.SocketException: Software caused connection abort: socket write error
- 并查集
- Vmware桥接设置适合局域网
- PS学习笔记
- Python+Django+Eclipse 在Windows下快速配置
- 面试题 求一个字节中的1的位数
- HDU 1272 小希迷宫(并检查集合)