zoukankan      html  css  js  c++  java
  • Android之Bundle

    1 Bundle介绍

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

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

    2 传递基本类型

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

    • 在activity间传递信息

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

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

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

  • 相关阅读:
    微信授权登录
    mpvue 试水的一天
    小程序请求接口统一封装到一个js文件中
    工作中vue项目前后端分离,调用后端本地接口出现跨域问题的完美解决
    百度小程序授权更好体验
    关于智能小程序网络请求封装
    vue 开发webapp 手机返回键 退出问题
    MySQL解决存入数据库和取出数据库时间格式问题
    关于小程序授权更好体验
    关于vue项目中在js中引入图片问题
  • 原文地址:https://www.cnblogs.com/jiani/p/11796341.html
Copyright © 2011-2022 走看看