使用显式Intent
在com.example.activity中创建名为SecondActivity的活动,并勾选Generate Layout File,不要勾选Launcher Activity选项。
编辑second_layout.xml,将里面的代码替换成如下内容定义了一个名为Button 2的按钮。
Intent 是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Inteat一般可被用于启动活动、启动服务以及发送广播等场景,由于服务、广播等概念你暂时还未涉及,那么我们的目光无疑就锁定在了启动活动上面。
Intent大致可以分为两种:显式 Intent 和隐式 Intent,我们先来看一下显式 Intent 如何使用。
Intent有多个构造函数的重载,其中一个是 Intent(Context packageContext, Class<?>cls)。这个构造函数接收两个参数,第一个参数 Context 要求提供一个启动活动的上下文,第二个参数Class则是指定想要启动的目标活动,通过这个构造函数就可以构建出 Intent的"意图"。然后我们应该怎么使用这个lntert呢? Activity类中提供了一个 startactivity()方法,这个方法是专门用于启动活动的,它接收一个Intent 参数,这里我们将构建好的Intent 传入startActivity()方法就可以启动目标活动了。
修改 FirstActiviy中按纽的点击事件.代码如下所示:
button1. setonclickListenertne View.0ncLuckListener()(new View.OnclickListener()
@Override
public void onClick(View v){
Intent intent = new Intent(Firstsctivity.this, SecondActivity.class);
StartActivity(intent);
}
});
我们首先构建出了一个Intent, 传入FirstActivity.this 作为上下文,传人Second-Activity.class作为目标活动,这样我们的“意图”就非常明显了,即在FirstActivity 这个活动的基础上打开SecondActivity这个活动。然后通过startActivity()方法来执行这个Intent。
重新运行程序,在FirstActivity的界面点击一下 按钮,结果如图所示。
可以看到,我们已经成功启动SecondActivity这个活动了。如果你想要回到上一个活动怎么办呢?很简单,按下Back键就可以销毁当前活动,从而回到上一个活动了。
使用这种方式来启动活动,Intent 的“意图”非常明显,因此我们称之为显式Intent。