Activity之间使用Intent和Bundle传值的区别
来源:互联网 发布:电脑动画制作软件 编辑:程序博客网 时间:2024/04/30 05:29
1.Bundle类的作用
Bundle类用作携带数据,它类似于Map,用于存放key-value名值对形式的值。相对于Map,它提供了各种常用类型的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putXxx()用于往Bundle对象放入数据,getXxx()方法用于从Bundle对象里获取数据。Bundle的内部实际上是使用了HashMap<String, Object>类型的变量来存放putXxx()方法放入的值。简单地说,Bundle就是一个封装好的包,专门用于导入Intent传值的包。
2.为Intent附加数据的两种写法
第一种写法,用于批量添加数据到Intent:
Intentintent = new Intent(); Bundle bundle = new Bundle();//该类用作携带数据 bundle.putString("name","Alice"); intent.putExtras(bundle);//为意图追加额外的数据,意图原来已经具有的数据不会丢失,但key同名的数据会被替换
第二种写法:这种写法的作用等价于上面的写法,只不过这种写法是把数据一个个地添加进Intent,这种写法使用起来比较方便,而且只需要编写少量的代码。
Intent intent = new Intent(); intent.putExtra("name","XXX");
那么,这两种方法有什么区别呢?
完全没有区别。当你调用putExtras()方法时,所传入的Bundle会被转化为Intent的键值(别忘了Intent也以键值模式转载数据)。
那么,现在看看如何将Intent和Bundle取出来。
方法很简单,直接使用this.getIntent()就可以得到传来的Intent,然后在这个Intent的基础上调用getExtras()就可以得到Bundle。然后这个Bundle你想要什么得到什么就get什么。
比如String str=bundle.getString("USERNAME"); 就是得到键为“USERNAME”的字符串,int num=bundle.getInt("Number");就是得到键为“Number”的整型。
- Activity之间使用Intent和Bundle传值的区别
- 在Activity之间使用Intent传值和Bundle传值的区别和方式
- Activity之间的数据交换Intent和Bundle区别
- Intent;Bundle--Activity之间跳转;Activity和Server之间跳转
- Android之Bundle,Activity和Intent的使用
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- Intent 传值和 Bundle传值的区别
- [转] Intent 传值和 Bundle 传值的区别
- Intent和Bundle的区别
- Intent和Bundle的区别
- Hadoop学习资料
- poj2379 结构体复杂应用
- JavaSE学习笔记_17:Java-Math&Random类
- Android中EditText输入字数统计和限制
- Fibonacci numbers
- Activity之间使用Intent和Bundle传值的区别
- ios定位
- 多重继承
- SODBASE实时大数据基础(一):实时同步Mysql数据库到Kafka
- 小小ARC造福无数码农
- bootstrapTable
- Xen-Server 6.5 配置 License Management 授权
- 安装fftw
- 一个简单的C语言的汇编程序