Activity学习(五)——Bundle机制
上一篇文章我简单介绍了Activity之间简单切换,很简单,这一篇文章我们继续聊Android中程序页面互相跳转的Activity,不过这一次我们在Activity跳转时,携带一些简单的数据,然后在新的Activity中将携带的数据展示出来。
不过请谨记我们这边暂时先携带一些简单的数据(简单的数据类型包括String),而不是那些大额的对象实例 ,在Activity中携带实例我们以后再论。
在Intent中我们使用putExtras方法携带数据,在例子中我们就介绍将数据存放到Bundle中,然后putExtras带上Bundle参数,代码如下:
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机制的更多相关文章
- Android JNI学习(五)——Demo演示
		本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ... 
- cesium 学习(五) 加载场景模型
		cesium 学习(五) 加载场景模型 一.前言 现在开始实际的看看效果,目前我所接触到基本上都是使用Cesium加载模型这个内容,以及在模型上进行操作.So,现在进行一些加载模型的学习,数据的话可以 ... 
- NFC(4)响应NFC设备时启动activity的四重过滤机制
		响应NFC设备时启动activity的四重过滤机制 在一个NFC设备读取NFC标签或另一个NFC设备中的数据之前会在0.1秒之内建立NFC连接,然后数据会自动从被读取一端流向读取数据的一端(NFC设备 ... 
- TweenMax动画库学习(五)
		目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ... 
- java学习之反射机制
		java语言区别于C,C++等准静态语言的最大特点就是java的反射机制.静态语言的最直接定义就是不能在运行时改变程序结构或变量的类型.按照这样的定义,python,ruby是动态语言,C,C++,J ... 
- SVG 学习<五> SVG动画
		目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ... 
- ZigBee学习五 无线温度检测
		ZigBee学习五 无线温度检测 1)修改公用头文件GenericApp.h typedef union h{ uint8 TEMP[4]; struct RFRXBUF { unsigned cha ... 
- (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射
		http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ... 
- iOS学习系列 - 扩展机制category与associative
		iOS学习系列 - 扩展机制category与associative category与associative作为objective-c的扩展机制的两个特性,category即类型,可以通过它来扩展方 ... 
- Python基础学习五
		Python基础学习五 迭代 for x in 变量: 其中变量可以是字符串.列表.字典.集合. 当迭代字典时,通过字典的内置函数value()可以迭代出值:通过字典的内置函数items()可以迭代出 ... 
随机推荐
- 10 款提高开发效率的 jQuery/CSS3 组件
			前端开发是一项十分繁琐而又耗体力的工作,如何更有效率的开发我们的应用,很多人会选择适当地使用一些jQuery插件.今天就要给大家分享10款可以提高开发效率的jQuery/CSS3组件.部分插件可以下载 ... 
- Linux内核学习笔记——内核内存管理方式
			一 页 内核把物理页作为内存管理的基本单位:内存管理单元(MMU)把虚拟地址转换为物理 地址,通常以页为单位进行处理.MMU以页大小为单位来管理系统中的也表. 32位系统:页大小4KB 64位系统:页 ... 
- 【转】Git常用命令备忘
			Git配置 git config --global user.name "robbin" git config --global user.email "fankai@g ... 
- iOS关于打包出错
			运行没问题,有可能是自动打包编译脚本的存在,删除掉即可. 
- 8 C#中的字符串输出
			我们在前面已经用Console.WriteLine("*********")往dos窗口中输出过字符串.我们还定义过字符串的变量. string words ="我喜欢D ... 
- JSP的7个动作指令
			动作指令与编译指令不同,编译指令是通知Servlet引擎的处理信息,而动作指令知识运行时的动作.编译指令在将JSP编译成Servlet时起作用,而处理指令通常可替换成JSP脚本,它知识JSP脚本的标准 ... 
- VS2010在C#头文件中添加文件注释的方法
			步骤: 1.VS2010 中找到安装盘符(本人安装目录在D盘,所以以D盘为例)D:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\I ... 
- Careercup - Google面试题 - 5692127791022080
			2014-05-08 22:09 题目链接 原题: Implement a class to create timer object in OOP 题目:用OOP思想设计一个计时器类. 解法:我根据自 ... 
- ACK
			ACK (Acknowledgement),即确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符.表示发来的数据已确认接收无误. 目录 1基本介绍 2详细释义 1基本介绍编辑 英文缩 ... 
- bzoj 2821 分块处理
			大题思路就是分块,将n个数分成sqrt(n)个块,然后 处理出一个w数组,w[i,j]代表第i个块到第j个块的答案 那么对于每组询问l,r如果l,r在同一个块中,直接暴力做就行了 如果不在同一个块中, ... 
