理论学习Activity之后,我们就来具体的实战,Activity之间相互切换依靠的是“ 意图 ”(Intent),这个 Intent 包含了要跳转到的Activity的一些信息,因为Activity是那些琐碎的页面,我们需要粘合剂( Intent )将这些 Activity连接起来,在程序中Activity启动的方式一般是调用startActivity,代码样式如下:
Java代码
- // intent很重要,是两个Activity之间的纽带
- Intent in = new Intent();
- // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
- in.setClass(this, ActivityB.class);
- // 跳转
- startActivity(in);
我们先做一个例子,例子很简单,就是从ActivityA切换到ActivityB中去。先看下Activity A的代码,代码中已经写好了注释,看起来比较轻松:
Java代码
- public class ActivityA extends Activity {
- private Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout_for_a);
- // 设置当前的的Activity的标题,以作为标记使用
- setTitle("这是Activity A");
- // 获取布局文件中的button
- button = (Button) findViewById(R.id.a_button);
- // 给button设置文字
- button.setText("A跳B");
- // button添加监听事件
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // 调用AtoB
- AtoB();
- }
- });
- }
- public void AtoB() {
- // intent很重要,是两个Activity之间的纽带
- Intent in = new Intent();
- // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
- in.setClass(this, ActivityB.class);
- // 跳转
- startActivity(in);
- }
- }
再看看要切换到Activity B中去的代码:
Java代码
- public class ActivityB extends Activity {
- private Button button;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.layout_for_b);
- // 设置当前的的Activity的标题,以作为标记使用
- setTitle("这是Activity B");
- // 获取布局文件中的button
- button = (Button) findViewById(R.id.b_button);
- // 给button设置文字
- button.setText("B跳A");
- // button添加监听事件
- button.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- // 调用AtoB
- BtoA();
- }
- });
- }
- public void BtoA() {
- // intent很重要,是两个Activity之间的纽带
- Intent in = new Intent();
- // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
- in.setClass(this, ActivityA.class);
- // 跳转
- startActivity(in);
- }
- }
时间: 2024-10-06 05:04:49