1 Bundle介绍

Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。

我们经常使用Bundle在Activity之间传递数据,传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现Serializable 或Parcelable接口。下面分别介绍Activity之间如何传递基本类型、传递对象。

2 传递基本类型

Bundle提供了各种常用类型的putXxx()/getXxx()方法,用于读写基本类型的数据。

  • 在activity间传递信息

     Bundle bundle = new Bundle();        //得到bundle对象
    bundle.putString("sff", "value值"); //key-"sff",通过key得到value-"value值"(String型)
    bundle.putInt("iff", 175); //key-"iff",value-175
    intent.putExtras(bundle); //通过intent将bundle传到另个Activity
    startActivity(intent);
    读取数据
     Bundle bundle = this.getIntent().getExtras(); //读取intent的数据给bundle对象
    String str1 = bundle.getString("sff"); //通过key得到value
    int int1 = bundle.getInt("iff");
  • 线程间传递(通过Handler将带有dundle数据的message放入消息队列,其他线程就可以从队列中得到数据)
     Message message=new Message();//new一个Message对象
    message.what = MESSAGE_WHAT_2;//给消息做标记
    Bundle bundle = new Bundle(); //得到Bundle对象
    bundle.putString("text1","消息传递参数!"); //往Bundle中存放数据
    bundle.putInt("text2",44); //往Bundle中put数据
    message.setData(bundle);//mes利用Bundle传递数据
    mHandler.sendMessage(message);//Handler将消息放入消息队列
    读取数据(这里用的是Handler的handleMessage(Message msg)方法处理数据)
     String str1=msg.getData().getString("text1");
    int int1=msg.getData().getString("text2");
PS:Bundle和Intent区别:

Bundle只是一个信息的载体,内部其实就是维护了一个Map<String,Object>。

Intent负责Activity之间的交互,内部是持有一个Bundle的。

Android_Bundle的更多相关文章

  1. meteor 安装 android sdk慢的改进方法

    网上方法很多,最后总结一下比较靠谱的一个,到~/.meteor/android_bundle/ 目录下, 执行tools/android,手动下载 API 19 和 intel X86 Atom Sy ...

随机推荐

  1. 使用Thymeleaf给前端绑定值

    1.pom依赖 <!-- thymeleaf --> <dependency> <groupId>org.springframework.boot</grou ...

  2. spring后台重定向方式

    1.直接返回值中加重定向:"redirect:要访问的网址"; public String updateOrAddProject() { return "redirect ...

  3. wordpress新注册用户或重置密码链接失效

    在网上找了好多个博客,一个比一个不要脸,要更改的是两个文件,最后都抄成一个文件了. 原文链接https://www.cnblogs.com/liudecai/p/6474611.html 我是按照这个 ...

  4. ng 点击事件

    执行事件获取数据 <div class="shijian"> <p>ng 事件</p> <p><button (click)= ...

  5. Android的各大框架整理

    OpenDanmaku  :一个Android的弹幕控件 地址:https://github.com/linsea/OpenDanmaku AndroidViewAnimations:Andorid视 ...

  6. ORM查询总结版

    目录 概要 ORM常用字段 ORM基础 自定义一个插入类型,即固定长度 创建类终极版 多对多关系表创建 常用几个代码 参数 ORM与数据库代码对应的关系 外键使用分表很麻烦,要先删除主表后,再删除 不 ...

  7. Flex 布局——语法属性详解

    前言 Flexbox 是 flexible box 的简称(注:意思是“灵活的盒子容器”),是 CSS3 引入的新的布局模式.它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现 ...

  8. python编程基础之十三

    列表的通用操作: list1 = [43, 65, 76, 6] list2 = [45, 77, 90, 11, 2, 4, 66] print(list1+ list2)  # 列表组合 prin ...

  9. 微信小程序模板消息

    1 先去微信公众平台,选择现有模板,会有一个模板编号,模板中没有的关键词,可以申请新增. 微信公众平台直达:https://mp.weixin.qq.com 模板消息对应文档直达:https://de ...

  10. 算法学习之剑指offer(三)

    题目1 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在 ...