上一篇文章我简单介绍了Activity之间简单切换,很简单,这一篇文章我们继续聊Android中程序页面互相跳转的Activity,不过这一次我们在Activity跳转时,携带一些简单的数据,然后在新的Activity中将携带的数据展示出来。

不过请谨记我们这边暂时先携带一些简单的数据(简单的数据类型包括String),而不是那些大额的对象实例 ,在Activity中携带实例我们以后再论。

在Intent中我们使用putExtras方法携带数据,在例子中我们就介绍将数据存放到Bundle中,然后putExtras带上Bundle参数,代码如下:

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);
//需要传出去的数据字串
String hello = "我是来自Bundle中的数据";
//我们把要传出去的字串放到bundle中
Bundle extras = new Bundle();
//第一个参数是key值,取的通过这个key就可以拿到这个bundle中的数据了
extras.putString("intent_bundle", hello);
//将bundle放进Intent中
in.putExtras(extras);
// 跳转
startActivity(in);
}
}
我们再在另外一个ActivityB中添加展示数据的代码,如下: Java代码
public class ActivityB extends Activity {
private Button button;
private TextView textView; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_for_b); // 设置当前的的Activity的标题,以作为标记使用
setTitle("这是Activity B"); // 获取布局文件中的button和textView
button = (Button) findViewById(R.id.b_button);
textView = (TextView) findViewById(R.id.show_tv); String show = getData();
//让textView显示取出来的数据
if (show != null){
textView.setText(show);
} else {
textView.setText("nothing");
} // 给button设置文字
button.setText("B跳A"); // button添加监听事件
button.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
// 调用AtoB
BtoA();
}
});
} public String getData(){
Bundle extra = new Bundle();
extra = getIntent().getExtras();
if (extra != null){
return extra.getString("intent_bundle");
}else {
return null;
}
}

public void BtoA() { // intent很重要,是两个Activity之间的纽带
Intent in = new Intent(); // 使用intent连接两个Activity,一个参数是当前的上下文(context),还有一个是要切换到的Activity主类
in.setClass(this, ActivityA.class); // 跳转
startActivity(in);
}
}

Activity学习(五)——Bundle机制的更多相关文章

  1. Android JNI学习(五)——Demo演示

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  2. cesium 学习(五) 加载场景模型

    cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ...

  3. NFC(4)响应NFC设备时启动activity的四重过滤机制

    响应NFC设备时启动activity的四重过滤机制 在一个NFC设备读取NFC标签或另一个NFC设备中的数据之前会在0.1秒之内建立NFC连接,然后数据会自动从被读取一端流向读取数据的一端(NFC设备 ...

  4. TweenMax动画库学习(五)

    目录            TweenMax动画库学习(一)            TweenMax动画库学习(二)            TweenMax动画库学习(三)            Tw ...

  5. java学习之反射机制

    java语言区别于C,C++等准静态语言的最大特点就是java的反射机制.静态语言的最直接定义就是不能在运行时改变程序结构或变量的类型.按照这样的定义,python,ruby是动态语言,C,C++,J ...

  6. SVG 学习<五> SVG动画

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  7. ZigBee学习五 无线温度检测

    ZigBee学习五 无线温度检测 1)修改公用头文件GenericApp.h typedef union h{ uint8 TEMP[4]; struct RFRXBUF { unsigned cha ...

  8. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  9. iOS学习系列 - 扩展机制category与associative

    iOS学习系列 - 扩展机制category与associative category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方 ...

  10. Python基础学习五

    Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ...

随机推荐

  1. DIV指令一般用法

    本文最初发表于2015-8-14,是由别的地方迁移过来的 (本文所讲为无符号运算) DIV指令是8086汇编中的除法运算指令,它的结果不是浮点数,而是两个整数:商和余数. 我们来看王爽老师是怎么讲的: ...

  2. jQuery对象与DOM对象

    jQuery对象与DOM对象是不一样的 可能一时半会分不清楚哪些是jQuery对象,哪些是DOM对象,下面重点介绍一下jQuery对象,以及两者相互间的转换. 通过一个简单的例子,简单区分下jQuer ...

  3. eclipse java.lang.OutOfMemoryError: Java heap space

    1.手动编译运行需要添加 java -Xms256m -Xmx1024m classname 2.在eclipse中,在run as -> run configurations -> ar ...

  4. iOS 初级数据持久化

    数据持久化 什么是数据持久化? 数据的永久存储 为什么要做数据持久化::存储在内存中的数据,程序关闭,内存释放,数据丢失,这种数据是临时的 数据持久化的本质:数据保存成文件,存储到程序的沙盒中 一.沙 ...

  5. 条款10:令operator=返回一个*this的引用

    为了编程的简洁性,有时候需要串联赋值,如:x = y = z = 15; 由于赋值采用右结合,因此上述语句被解释为:x = (y = (z = 15)); 为了实现串联赋值,复制操作符函数必须返回一个 ...

  6. vhdl基础---分频

    偶数分频 ibrary IEEE; use IEEE.STD_LOGIC_1164.ALL; use ieee.std_logic_arith; use ieee.std_logic_unsigned ...

  7. Android实现SharePreferences和AutoCompletedTextView

    Android实现SharePreferences和AutoCompletedTextView 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 ...

  8. 如何在github上fork一个项目来贡献代码以及同步原作者的修改

    [-] 如何贡献自己的力量 如何让自己的项目与原作者的项目保持同步 作为一个IT人,通过github进行学习是最快的成长手 段.我们可以浏览别人的优秀代码.但只看不动手还是成长得很慢,因此为别人贡献代 ...

  9. 在windows下使用vs2013编译和调试mysql源代码

    1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...

  10. 团队项目NABC分析

    我们的团队项目是“来用”实用工具集合软件,我针对我们项目功能丰富的特点进行NABC分析. N (Need 需求):我们的软件正是从最大程度上满足用户需求出发,因为软件集合了不同种类的功能,可以满足用户 ...