Intent用法——在活动之间跳转(二)
来源:互联网 发布:pt18rz标签机打印软件 编辑:程序博客网 时间:2024/05/16 01:19
OK我们来讲一下隐式Intent~~~~
在隐式Intent部分,将给出3个主要例子,来帮助对其的理解,主要目录如下。
- 什么是隐式Intent
- 利用隐式Intent来实现活动跳转
- 利用隐式Intent打开浏览器
- 利用隐式Intent实现拨号功能
什么是隐式Intent
在显式Intent中,我们想要启动哪个活动被明确指出,而隐式Intent指定了一系列更为抽象的action和category等信息,交由系统去分析这个Intent并启动相应的活动。
那么什么叫做相应的活动?其实就是与我们给出的这些信息相匹配的活动~请看例子1,如下:
利用隐式Intent来实现活动跳转
首先来配置我们的action和category等信息,这一步在AndroidManifest.xml中完成,在<activity>
标签下配置<intent-filter>
,添加如下代码:
<activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START" /> //指明当前活动可以响应的action <category android:name="android.intent.category.DEFAULT" /> //附加信息,更精确地指明当前活动能够响应的Intent中还可能带有的category </intent-filter> </activity>
这就是我们设置的action和category的信息,也就是说,只有Intent中的内容与我们所给定的这些内容完全匹配的时候,该Intent才能被活动响应。
好的,现在我们来让我们Intent匹配这些信息,来使Intent能够被启动。
修改FirtstActivity中按钮的点击事件:
button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ //这个是隐式intent Intent intent=new Intent("com.example.activitytest.ACTION_START"); startActivity(intent); } }); }
值得提出的是,在这里我们没有指定category
,是因为android.intent.category.DEFAULT
是一种默认的category,在调用startActivity()
方法的时候会自动将这个category
添加到Intent中。而如果需要配置别的category
类型,则在<intent-filter>
和FirtstActivity中按钮的点击事件作相应添加就可以啦。
运行程序,在FirstActivity的界面点击Button 1,发现你已经可以启动SecondActivity啦~~~而且这次是通过隐式Intent启动的~
利用隐式Intent打开浏览器
使用隐式Intent还可以启动(你自己app之外的)其他活动,这让Android多个应用程序之间的功能共享成为了可能。下面这个例子是来调用系统的浏览器的,同样通过在FirstActivity中点击按钮跳转到浏览器页面。
button1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ //打开浏览器界面 Intent intent = new Intent(Intent.ACTION_VIEW); //指定intent的action是 Intent.ACTION_VIEW intent.setData(Uri.parse("http://www.baidu.com")); //Uri.parse()可以将一个网址字符串解析成Uri对象, //再调用intent的setData()方法将这个Uri对象传递进去。 startActivity(intent); } }); }
代码解释:
setData()
接收一个Uri
对象,主要用于指定当前Intent正在操作的数据,而这些数据通常以字符串的形式传入到Uri.parse()
中。
重新启动程序,在FirstActivity中点击Button 1
,就可以看到浏览器的打开~
利用隐式Intent实现拨号功能
将FirstActivity中public void onClick(View v)
里的代码块作如下修改:
//调用系统拨号界面 Intent intent=new Intent(Intent.ACTION_DIAL); intent.setData(Uri.parse("tel:10086")); startActivity(intent);
重新启动程序,可以看到程序调用了拨号界面,并显示了10086~
关于Intent在活动中跳转的功能介绍大概就是这些了~除此之外,Intent还可以在活动之间传递数据,比如向下一个活动传递数据,或者返回数据给上一个活动。
- Intent用法——在活动之间跳转(二)
- Intent用法——在活动之间跳转(一)
- Intent的用法——活动之间跳转
- 活动——Intent在活动之间穿梭
- 【Android成长之路】Intent初体验—使用Intent 在活动之间穿梭(一)
- Intent 实现活动之间的跳转
- 实现在不同活动之间的转换(Intent的用法)
- Android之Activity(二):使用Intent在活动之间穿梭
- 使用intent在活动之间穿梭——使用显式Intent
- 使用intent在活动之间穿梭——使用隐式Intent
- Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
- Android 四大组件 —— 活动(使用Intent 实现活动的显示跳转)
- Activity之间的跳转—Intent
- 第一行安卓代码——使用Intent在活动之间穿梭2.3
- 使用Intent在活动之间穿梭
- Android 一一 Intent在活动之间穿梭
- 使用Intent在活动之间穿梭(Intent初识)
- Android Intent跳转活动
- 查找
- C++生成并调用dll
- http://www.ruanyifeng.com/blog/2011/09/curl.html
- 关于信号
- WEB后台--基于Token的WEB后台登录认证机制(并讲解其他认证机制以及cookie和session机制)
- Intent用法——在活动之间跳转(二)
- ubuntu系统更改默认软件源为网易软件源
- 机器学习笔记(四)聚类
- Problem E: 同源数
- 使用Handler进行线程间的通信
- 团体程序设计天梯赛-练习集-L1-006. 连续因子
- 安装win7,Ubuntu16.04双系统
- 牛顿法和拟牛顿法
- Git安装配置(一)