Intent意图 可用于Activity之间的数据传递,一般可分为下面两种情况,从当前Activity传递到目标Activity后有无返回值: 1.传递后无返回值的情况:

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
   在起始Activity中,发送数据
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);
          Intent intent = new Intent();
         //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
         intent.setClass(ThisActivity.this,TargetActivity.class);
         //绑定数据
         intent.putExtra("username",username);//也可以绑定数组
         intent.putExtra("userpass",userpass);
         //打开目标Activity
         startActivity(intent);
      }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
        //读取数据
        String name = intent.getStringExtra("username");
        String pass = intent.getStringExtra("userpass);
     }
也可以适用Bundle(捆)
    在起始Activity中,发送数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);     
         Intent intent = new Intent();
         //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
         intent.setClass(ThisActivity.this,TargetActivity.class);
         //一次绑定多个数据
        Bundle bundle = new Bundle();
        bundle.putString("username",username);
         bundle.putString("userpass",userpass);
         intent.putExtras(bundle);
        //打开目标Activity
        startActivity(intent);
     }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
         //读取数据
          Bundle bundle = intent.getExtras();
         String name = bundle.getString("username");
         String pass = bundle.getString("userpass");
     }

2. 传递后有返回值的情况:当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传递数据,也可以使用 startActivityForResult (Intent intent, int requestCode);方法。

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
35
36
37
38
39
40
41
42
43
44
   在起始Activity中,发送数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.thisactivity);     
         Intent intent = new Intent();
        //设置起始Activity和目标Activity,表示数据从这个Activity传到下个Activity
        intent.setClass(ThisActivity.this,TargetActivity.class);
        //绑定数据
        intent.putExtra("username",username);//也可以绑定数组
        intent.putExtra("userpass",userpass);
        //打开目标Activity
         startActivityForResult(intent,1);
     }
     //需要重写onActivityResult方法
     protected void onActivityResult(int requestCode, int resultCode, Intent intent){
        super.onActivityResult(requestCode,resultCode,intent);
         //判断结果码是否与回传的结果码相同
        if(resultCode == 1){
           //获取回传数据
           String name = intent.getStringExtra("name");
            String pass = intent.getStringExtra("pass);
            //对数据进行操作
           ......
         }
    在目标Activity中,接收数据:
     protected void onCreate(Bundle saveInstanceState){
         super.onCreate(saveInstanceState);
         setContentView(R.layout.targetactivity);     
         //获得意图
         Intent intent = getIntent();
         //读取数据
         String name = intent.getStringExtra("username");
         String pass = intent.getStringExtra("userpass);
         //从EditText中获取新的数据给name和pass
         name = editText1.getText().toString();
         pass = editText2.getText().toString()
         //数据发生改变,需要把改变后的值传递回原来的Activity
         intent.putExtra("name",name);
        intent.putExtra("pass",pass);
        //setResult(int resultCode,Intent intent)方法
        setResult(1,intent);
        //销毁此Activity,摧毁此Activity后将自动回到上一个Activity
        finish();
}

转-Activity之间数据传递之Intent数据传递的更多相关文章

  1. Android activity之间的跳转和数据传递

    1.Activity之间的跳转 并且 传递数据 A Activity进行的操作 Intent intent = new Intent(context, B.class); intent.putExtr ...

  2. intent--Activity之间数据传递之Intent数据传递

    intent传值: 4,intent传集合 3,intent传对象, 2,传递后有返回值的情况:当需要从目标Activity回传数据到原Activity时,可以使用上述方法定义一个新的Intent来传 ...

  3. Android笔记(三) 使得Activity之间可以跳转---Intent

    什么是Intent 一个APP肯定不单单由一个Activity构成,我们在使用过程中,经常需要在多个Activity中跳转,Android中Intent可以帮我们来完成在各个Activity中跳转的功 ...

  4. 在activity之间传递数据

    在activity之间传递数据 一.简介 二.通过intent传递数据 1.在需要传数据的界面调用 intent.putExtra("data1", "我是fry&quo ...

  5. Android Activity之间的数据传递

    1.向目标Activity传递数据: Intent intent=new Intent(this,Main2Activity.class); //可传递多种类型的数据 intent.putExtra( ...

  6. 建立、配置和使用Activity——使用Bundle在Activity之间交换数据

    当一个Activity启动另一个Activity时,常常会有一些数据需要传过去——这就像Web应用从一个Servlet跳到另一个Serlvet时,Web应用习惯把需要交换的数据放入requestSco ...

  7. 杂记之activity之间的跳转

    代码结构图 manifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xml ...

  8. 【Android 应用开发】Activity生命周期 与 Activity 之间的通信

    一. Activity生命周期 上图 1. Activity状态 激活状态 : Activity出于前台 , 栈顶位置; 暂停状态 : 失去了焦点 , 但是用户仍然可以看到 , 比如弹出一个对话框 , ...

  9. Activity生命周期 与 Activity 之间的通信

    一. Activity生命周期 上图 1. Activity状态 激活状态 : Activity出于前台 , 栈顶位置; 暂停状态 : 失去了焦点 , 但是用户仍然可以看到 , 比如弹出一个对话框 , ...

随机推荐

  1. AS3 Embed用法笔记

    1. 用[Embed]元数据标签可以嵌入GIF,PNG,JPEG,或者MP3文件.ActionScript代码的顺序非常重要.你必须在声明变量前添加[Embed]元数据标签,而且这个变量的类型会是Cl ...

  2. Learn python the hard way. python test program 2016.04.27

    # this will not be printed in python ! print "I could have code like this." # and the comm ...

  3. jQuery序列化后的表单值转换成Json

    $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() ...

  4. Andorid面试问题整理

    Acitivty的四中启动模式与特点. standard:默认的启动模式 singleTop:适合那种接受通知启动的页面,比如新闻客户端之类的,可能会给你推送好几次 ,但是每次都是打开同一张页面调用o ...

  5. CARP-VRRP-HSRP

    CARP-VRRP-HSRP http://www.openbsd.org/faq/pf/carp.html

  6. css之border,dispaly

    border:即为边框设置 solid:实线 dashed:虚线 dotted:圆点线 css代码: .c1{ width: 100%; height: 50px; border: 25px dott ...

  7. 【Android】【录音】Android录音--AudioRecord、MediaRecorder

    [Android][录音]Android录音--AudioRecord.MediaRecorder Android提供了两个API用于实现录音功能:android.media.AudioRecord. ...

  8. 【jmeter】逻辑控制器

    JMeter中的Logic Controller用于为Test Plan中的节点添加逻辑控制器. JMeter中的Logic Controller分为两类:一类用来控制Test Plan执行过程中节点 ...

  9. 【linux】Cache和Buffer的区别

  10. 【Spring学习笔记-1】Myeclipse下Spring环境搭建

    *.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...