安卓 Intent (1)数据传递 Intent和Bundle详解
2015-12-16 17:55
435 查看
Intent是四大组件的纽带,传递数据的作用
1.Bundle的意义?
2.Intent传递对象?
首先看Intent的传递关系:
理论部分:
1.数据依靠于Intent传递数据
2.Intent依靠于Bundle当做数据包
1.Bundle的意义是什么?
传递数据用Bundle和不用的区别:
这传递语法本身意义上是相同的:
那么可以理解为安卓为Intent提供了一种叫做Bundle封装机制,
写于不写它都是存在的,
所以:用不用Bundle传递效果都一样的
接收数据用不用Bundle的区别
这个代码中: 用Bundle 或者 不用Bundle都能接收到数据
所以: 用不用Bundle接受效果都一样的
总结:
Bundlle写不写都不是很重要了,那么Bundle代表的是封装的数据,
上面有两种传递,两种接收,完全可以混写的使用也毫无关系了!
主要:方便二次传递的时候我们可以直接传递Bundle即可
2.Intent 传递对象!
Intent可以传递值 可以传递对象,
比如传递一个封装的GetSet
或者用Bundle传递
效果都是一样的,
直接取对象的写法
取Bundle再取对象也是一样的
1.Bundle的意义?
2.Intent传递对象?
首先看Intent的传递关系:
理论部分:
1.数据依靠于Intent传递数据
2.Intent依靠于Bundle当做数据包
Intent提供四种方法: putExtras(Bundle data) //直接存入 数据包 getExtras(); //直接取出 数据包; putExtra(String key,Xxx value) //以键值方式 存入数据 getXxxExtra(String name,Xxx defaultValue) //以指定key 取出数据
Bundle提供四种方法: putXxx(String key, Xxx value) //以键值方式 存入数据 getXxx(String key, Xxx defalutValue ) //以指定key 取出数据 putSerializable(String key,Xxx defalutValue); //以键值方式存 可序列化的对象 getSerializable(String key) //以指定key取出 可序列号的对象
1.Bundle的意义是什么?
传递数据用Bundle和不用的区别:
//不用Bundle intent.putExtra("id",str);
//用Bundle传递数据 Bundle bundle=new Bundle(); bundle.putString("id", str); intent.putExtras(bundle);
这传递语法本身意义上是相同的:
那么可以理解为安卓为Intent提供了一种叫做Bundle封装机制,
写于不写它都是存在的,
所以:用不用Bundle传递效果都一样的
接收数据用不用Bundle的区别
//不用Bundle Intent intent=getIntent(); String aa=intent.getStringExtra("id");
//用Bundle接收数据 Intent intent=getIntent(); Bundle bundle=intent.getExtras(); String aa=bundle.getString("id");
这个代码中: 用Bundle 或者 不用Bundle都能接收到数据
所以: 用不用Bundle接受效果都一样的
总结:
Bundlle写不写都不是很重要了,那么Bundle代表的是封装的数据,
上面有两种传递,两种接收,完全可以混写的使用也毫无关系了!
主要:方便二次传递的时候我们可以直接传递Bundle即可
2.Intent 传递对象!
Intent可以传递值 可以传递对象,
比如传递一个封装的GetSet
intent.putExtra("id", new Beran("你好"));
或者用Bundle传递
Bundle bundle2=new Bundle(); bundle2.putSerializable("id",new Beran("你好")); intent.putExtras(bundle2);
效果都是一样的,
直接取对象的写法
Intent intent2=getIntent(); Beran beran=(Beran) intent2.getSerializableExtra("id");
取Bundle再取对象也是一样的
Intent intent2=getIntent(); Bundle bundle=intent2.getExtras(); Beran beran=(Beran) bundle.getSerializable("id");
相关文章推荐
- hadoop集成环境搭建过程记录
- [Java学习] Java文件操作工具类
- Android 蓝牙通信实现
- Volley封装--volleyutils
- find详解
- JDOM重要API
- redis集群(主从配置)
- Ensemble_learning 集成学习算法 stacking 算法
- 使用jstl时需要导入两个jar包
- 查看端口是否被占用
- 安装部署spark standalone 模式集群
- 返回机型
- openstack集成ceph
- IOS版使用移动广告平台集成Google Mobile Ads SDK教程
- TCPdump抓包命令
- phantomjs: error while loading shared libraries: libfreetype.so.6
- 开发中导航栏底部的黑线显示和隐藏
- 将树形菜单拼接为名称+路径
- 如何万能地提交数据写入数据
- XE8安装JVCL(D7-X10通用)