多个Activity之间的相互转换

 这一篇我们要讲的内容主要是Activity的创建以及多个Activity之间的调用和数据的携带与返回,相信读者们耐心且用心的读完这篇文章一定能学到一些知识,加深对Activity的了解和掌握。


1.Activity的创建:

   步骤如下:

(1)在src下的包中新建一个类继承Activity类(java文件)

(2)重写onCreate方法

(3)创建与这个Activity对应的xml文件

(4)在继承Activity的类中通过setContentView()加载试图(上一步创建的xml文件)

(5)在AndroidManifest.xml文件中注册


2.Activity之间的跳转:

使用Activity实现不同Activity的跳转

* 1 创建一个新的Activity(略过)

* 2 创建Intend对象,是四个基本组件的桥梁

* 3 启动Activity的方法 startActivity

* 4 给按钮添加监听,实现跳转

*   (1)声明一个Button,同时在主xml文件中添加一个Button

*   (2)通过findViewById方法引入这个Button

*   (3)通过setOnClickListener的匿名内部类来添加监听

   具体代码如下(未列出的代码在工程创建后由系统自动生成):

(1)创建的新的Activity的java文件Act2.java

1
2
3
4
5
6
7
8
9
10
11
12
package  com.example.newactivity;
import  android.app.Activity;
import  android.os.Bundle;
public  class  Act2  extends  Activity{
     //重写onCreate方法
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         //加载试图
         setContentView(R.layout.act2);
     }
}

(2)在主配置文件AndroidManifest.java文件中注意一定千万不要忘记对新建的Activity进行注册:

1
2
</activity>
       <activity android:name= "Act2" ></activity>

(3)main_Activity.xml文件中添加一个用于跳转的Button:

1
2
3
4
5
<Button
     android:id= "@+id/button"
     android:layout_width= "wrap_content"
     android:layout_height= "wrap_content"
     android:text= "跳转"  />

(4)在MainActivity.java文件中实现跳转的主要功能代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package  com.example.newactivity;
import  android.app.Activity;
import  android.content.Intent;
import  android.os.Bundle;
import  android.view.View;
import  android.view.View.OnClickListener;
import  android.widget.Button;
public  class  MainActivity  extends  Activity {
     //声明Button
     private  Button btn;
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         //引入对应id号的Button
         btn=(Button)findViewById(R.id.button);
         //给Button创建监听
         btn.setOnClickListener( new  OnClickListener() {
                                                                                                                                                                                                                     
             @Override
             public  void  onClick(View arg0) {
                 //创建Intent对象来实现Activity的跳转
                 Intent i= new  Intent(MainActivity. this ,Act2. class );
                 //调用startActivity方法启动新的Activity
                 startActivity(i);
             }
         });
     }
                                                                                                                                                                                                             
}

   到这里我们就可以运行结果看一下了:



3.Activity之间的数据携带

   这里我们只拿出java文件,其他文件不写了,代码如下:

(1)MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package  com.example.startactivity;
import  android.app.Activity;
import  android.content.Intent;
import  android.os.Bundle;
import  android.view.View;
import  android.view.View.OnClickListener;
public  class  MainActivity  extends  Activity {
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         findViewById(R.id.button1).setOnClickListener( new  OnClickListener() {
                                                                                                                                       
             @Override
             public  void  onClick(View arg0) {
                 Intent i= new  Intent(MainActivity. this ,Act2. class );
                 i.putExtra( "data" "谢谢你把我携带到这里" );
                 startActivity(i);
             }
         });
     }
}

(2)Act2.java

1
2
3
4
5
6
7
8
9
10
11
12
package  com.example.startactivity;
import  android.app.Activity;
import  android.os.Bundle;
public  class  Act2  extends  Activity{
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.act2);
         String strInfo=getIntent().getStringExtra( "data" );
         System.out.println( "Act2--" +strInfo);
     }
}

(3)注意不要忘了Activity的注册!

   运行结果如下:



4.Activity之间的数据返回:

   基于前面的数据携带,我们接下来讲一下数据的返回,这一点主要应用于注册或者登陆界面,当跳转到下一个页面时可能需要返回给前一个页面一些值,实现的代码如下:

   

(1)MainActivity.java文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package  com.example.startactivityforresult;
import  android.app.Activity;
import  android.content.Intent;
import  android.os.Bundle;
import  android.view.View;
import  android.view.View.OnClickListener;
public  class  MainActivity  extends  Activity {
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
         findViewById(R.id.button1).setOnClickListener( new  OnClickListener() {
                                                                    
             @Override
             public  void  onClick(View arg0) {
                 Intent i= new  Intent(MainActivity. this ,Act2. class );
                 startActivityForResult(i,  1 );
             }
         });
     }
     @Override
     protected  void  onActivityResult( int  requestCode,  int  resultCode, Intent data) {
         super .onActivityResult(requestCode, resultCode, data);
         switch  (requestCode) {
         case  1 :
             System.out.println(data.getStringExtra( "data" ));
             break ;
         default :
             System.out.println( "返回错误" );
             break ;
         }
     }
                                                            
}

(2)Act2.java文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package  com.example.startactivityforresult;
import  android.app.Activity;
import  android.content.Intent;
import  android.os.Bundle;
import  android.view.View;
import  android.view.View.OnClickListener;
public  class  Act2  extends  Activity{
     @Override
     protected  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.act2);
         findViewById(R.id.button1).setOnClickListener( new  OnClickListener() {
                                                                 
             @Override
             public  void  onClick(View v) {
                 Intent i= new  Intent(Act2. this ,MainActivity. class );
                 i.putExtra( "data" "我是返回主界面的信息" );
                 setResult( 1 , i);
                 finish();
             }
         });
     }
}

(3)运行结果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值