Intent:它是各个活动组件之间进行转换交互的重要方式,不仅可以指明当前组件想执行的活动,也可以在不同活动之间传递数据,也就是不同组件之间传递数据。
在此我们介绍三种:
1.本程序的显示Intent
2.本程序的隐示Intent
3.不同程序之间的Intent
首先
我们来介绍第一种显示的Intent,由于按钮事件我们以前已经介绍过,不在赘述,我们在这里定义一个按钮,如果点击
按钮的话,我们就跳到另一个指定的活动。
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
//第一个参数:启动活动的上下文,也就是这个活动
//第二个参数:要启动的目标活动
startActivity(intent);
//开启指定的活动
}
});
显示的Intent还是比较简单的,总的来说就是先定义方向,在方向的基础上开启活动。
其次
我们来介绍一下隐示的Intent
第一步:在AndroidManifest.xml中加入如下代码,作为一个活动的属性,标签,当有一个Intent以一个属性来找的时候
正好这个活动的属性对上了,那么他也就被调用了。
<activity android:name=".SecondActivity">
<intent_filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<catagort android:name="android.intent.category_DEFAULT"/>
//一共有两个属性,一个是动作名字,一个是目录名字
</intent_filter>
</activity>
第二步:在按钮点击事件中定义,按钮点击事件也就是显示Intent所定义的内容的里面
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent=new Intent("com.example.activitytest.ACTION_START");
intent.addCategory("android.intent.category_DEFAULT");
//找到符合上述属性的活动,因为我们已经把它定义在了SecondActivity中,所以,开启的
//是SecondActivity活动
startActivity(intent);
}
});
最后
介绍一下不同程序之间的活动的调用
第一步:将按钮点击事件定义如下,找到我所想要的活动
button.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
Intent intent=new Intent(Intent.ACTION_VIEW);//内置动作
intent.setData(uri.parse("http://www.baidu.com"));
//将地址封装为对象,用SetData指定要操作的数据
startActivity(intent)
}
});
第二步:在另一个程序,可以处理这个地址的浏览器中,在AndroidManifest.xml中的<intent_filter>中加入如下代码
<data android:scheme="http"/>
检测对方要处理的数据,如果是我可以处理的数据,匹配上了,那么我这个活动就启动,并执行相应的动作。