使用Bundle在Activity间传递数据

源Activity

public class SourceActivty extends Activity { 
private Intent intent=null; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
intent=new Intent(); 
Bundle myBundelForName=new Bundle(); 
myBundelForName.putString("Key_Name","1111"); 
myBundelForName.putString("Key_Age","22"); 
intent.putExtras(myBundelForName); 
TextView text=(TextView)findViewById(R.id.test); 
text.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
intent.setClass(SourceActivty.this, TargetActivty.class); 
startActivity(intent);


}); 
}

}

目标activty

public class TargetActivty extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.intest); 
TextView text=(TextView)findViewById(R.id.tt); 
//从Intent 中获取数据 
Bundle myBundelForGetName=this.getIntent().getExtras(); 
String name=myBundelForGetName.getString("Key_Name"); 
text.setText("欢迎您进入:"+name); 

}

从源请求Activity 中通过一个Intent 把一个服务请求传到目标Activity

源activty

private Intent openWelcomeActivityIntent = null; 
TextView text=null; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
openWelcomeActivityIntent = new Intent(); 
// 设定开启的下一个Activity 
text=(TextView)findViewById(R.id.test); 
text.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
openWelcomeActivityIntent.setClass(SourceActivty1.this, 
TargetActivty1.class); 
startActivityForResult(openWelcomeActivityIntent, 1);


});

}

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
super.onActivityResult(requestCode, resultCode, data); 
if (requestCode == 1) { 
if (resultCode == RESULT_CANCELED) { 
setTitle("Cancel****"); 
} else if (resultCode == RESULT_OK) { 
Bundle showBundle = data.getExtras();// 从返回的Intent中获得Bundle 
text.setText("the name get from the second layout:\n" + showBundle.getString("myName")); 



}

☻ 第一个参数是你开启请求Intent时的对应请求码,可以自己定义。 
☻ 第二个参数是目标Activity返回的验证结果码 
☻ 第三个参数是目标Activity返回的Intent

目标activty

public class TargetActivty1 extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.intest); 
Intent backIntent=new Intent(); 
Bundle stringBundle=new Bundle(); 
stringBundle.putString("myName", "lishiyao"); 
backIntent.putExtras(stringBundle); 
setResult(RESULT_OK, backIntent);//返回Activity结果码 
finish(); 
}

}

使用Bundle在Activity间传递数据的更多相关文章

  1. Android学习手记(3) Activity间传递数据

    1. 简单数据传递 建立两个Activity,名称分别为MainActivity和TheAty,在MainActivity中新建一个Button,id为btnStartAty.在TheAty中新建一个 ...

  2. Activity间传递数据

     1.从当前的Activity传递数据到下一个Activity: (1)发送方(当前的Activity): Bundle bundle = new Bundle(); bundle.putString ...

  3. Android广播接收器和Activity间传递数据

    Activity向广播接收器传递数据很简单,只需要在发送广播前将数据put进Intent中就行了. 广播接收器怎么向Activity传送数据?这里要用到接口,通过在广播接收器里定义一个接口,然后让接收 ...

  4. 利用Bundle在activity之间传递对象

    (2010-12-04 09:45:54) 转载▼ 标签: it 分类: android开发 转自:http://chen592969029.javaeye.com/blog/772656 假如需要在 ...

  5. Activity之间传递数据或数据包Bundle,传递对象,对象序列化,对象实现Parcelable接口

    package com.gaojinhua.android.activitymsg; import android.content.Intent; import android.os.Bundle; ...

  6. 第一课android开发之在activity间传递参数

    一.活动间简单参数传递:1.在布局中添加按钮,用<Button,用id设置id名称,id="@+id/这儿填写你要设置成的名称":用text设置按钮上显示的文字.text=& ...

  7. Activity之间传递数据的方式及常见问题总结

    Activity之间传递数据一般通过以下几种方式实现: 1. 通过intent传递数据 2. 通过Application 3. 使用单例 4. 静态成员变量.(可以考虑 WeakReferences) ...

  8. 28、activity之间传递数据&批量传递数据

    import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android ...

  9. 【Android 复习】 : Activity之间传递数据的几种方式

    在Android开发中,我们通常需要在不同的Activity之间传递数据,下面我们就来总结一下在Activity之间数据传递的几种方式. 1. 使用Intent来传递数据 Intent表示意图,很多时 ...

随机推荐

  1. linux误删除恢复

    extundelete 大家基本都知道,在linux上误删除了东西后果是很严重的,尤其是在服务器上误删除了东西,对于字符终端,想要实现恢复删除的数据更是难上加难,对于Linux误删除了重要的东西,虽然 ...

  2. CPU指令集不同导致的core分析

    最近程序需要支持CGSL系统运行,测试中发现相同操作系统的两台机器,编译机运行正常,测试机coredump.core信息汇总如下,可以看出是由于测试机不支持编译后的指令导致的问题: Program t ...

  3. 解决LaTex中插入Visio画图有多余边框的问题

    这里的Visio画图是指Visio另存为或导出的PDF格式图片.就目前而言,Visio另存为的EPS格式的图片均可使用PDF格式代替. 问题描述 这里以Visio中画一个矩形为例,如上图所示. 我们为 ...

  4. REMIX与LOCALHOST相连

    REMIX与LOCALHOST相连 让Remix与本地文件系统进行交互,点击connect同时找到localhost下的Remix文件管理器的共享目录.在开始之前,参考网址: https://remi ...

  5. 在jsp页面中使用jstl标签

    第一步:引入标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%> 第 ...

  6. 【转】PHP的执行原理/执行流程

    简介 先看看下面这个过程: 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的: PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接 ...

  7. 论文笔记《Deep Hand: How to Train a CNN on 1 Million Hand Images When Your Data Is Continuous and Weakly Labelled》

    一.概述 这个是最近的核心工作了,基本上都是靠着这篇paper的model过日子了啊.. 论文主要讲的是hand gesture recognition,实际上是用googlenet做的一个class ...

  8. 怎么查看linux系统是32位还是64位

    1.#uname -a如果有x86_64就是64位的,没有就是32位的 这是64位的 # uname -a Linux desktop 2.6.35-23-generic #20-Ubuntu SMP ...

  9. code forces 994B

    B. Knights of a Polygonal Table time limit per test 1 second memory limit per test 256 megabytes inp ...

  10. Topcoder SRM 606 div1题解

    打卡! Easy(250pts): 题目大意:一个人心中想了一个数,另一个人进行了n次猜测,每一次第一个人都会告诉他实际的数和猜测的数的差的绝对值是多少,现在告诉你所有的猜测和所有的差,要求你判断心中 ...