Intent是各大组件进行交互的方法之一,既可以在Activity中指点想要完成的动作,也可以通过Intent实现活动之间数据的传递。
Intent分为显式Intent与隐式Intent。
显式Intent的使用:
创建Intent对象:
Intent intent=new Intent();
Intent有多个构造函数的重载,因此,参数就会有很多种,里面的参数可以是android系统内置的动作,也可以用来启动活动,第一个参数为Context类,是一个启动活动的上下文,一般为目前的活动,第二个参数为将要启动的目标活动。
创建Intent对象之后,可以通过startActivity()方法启动活动,参数为Intent。
为了更好的理解 ,我编写了一个登录的页面来进行演示:
通过创建按钮,注册点击事件,核对account和password,登录。登录时,SecondActivity活动的启动就是通过Intent。
运行效果:
隐式Intent的使用:
相比于显式Intent的简单粗暴,隐式Intent需要配置一些东西了,在Inter-filter闭包中配置action和category,只能有几一个action,category可以为多个。配置完action与category之后,创建Intent对象时,将action作为参数传入Intent中,并使用addCategory()方法传入配置的category,最后通过startActivity()方法启动活动即可。注意:当配置了多个category时,必须将这多个category都进行配对才可以 。
代码如下:
其中android.intent.category.DEFAULT为系统默认的category,在进行匹配时可以省略不写,但,若有多个category时,需要在Manifest.xml列出默认的category.