您的位置:首页 > 其它

Ex3.10 不同Activity之间的数据传递——Bundle对象的实现

2011-04-26 17:39 656 查看
在上例中(Ex3.9)中实现了Activity之间的跳转,虽然我扩展到三个Activity间的跳转,但各个Activity间是相互独立并存的。这一节我们就从数据入手,学习在不同Intent间传递数据的对象 —— Bundle 。

首先我们回顾一下Activity与Intent,为更好地理解Bundle做准备。

众所周知,Android应用结构是由一下四个部分组成:(并不是说每一个Android应用里都包含所有内容


Activity

Intent Receiver

Service

Content Provider

Activity是Android应用中最基本的组成部分,往文了说就是“每个activity都被实现为一个独立的类,并且继承于Activity这个基类。这个activity类会由若干个Widgets控件组成”。往俗了说“activity就是Android应用中的一个单独窗口屏幕”。

上例中引出了“Intent”这一概念,说的是Intent用于Activity间的数据交换。其实在Intent的结构描述中主要包含两部分:动作和动作所对应的数据。关于Intent的动作行为和请求会牵扯出另外一个概念“IntentFilter”,所以在本例中暂不细说。就记住
Intent是连接Android应用间的桥梁就行,因为Intent的本事很大很大 :-)

而对于Bundle,我理解它就是一个"数据封装的容器",而Intent就是这个数据容器的应用载体。

有了这些理论依据,我们再来看程序代码,无非就是"放数据"和"取数据"的关系。

//第一步 创建Intent对象,指定Class
Intent intent = new Intent();
intent.setClass();
//第二步 创建Bundle对象, 放/压 数据
Bundle bundle = new Bundle();
bundle.putData(XXXXXXX);
//第三步 将Bundle对象分发给Intent, 调用Activity
intent.putExtras(bundle);
startActivity(intent);


//取数据
//获取Intent中的Bundle对象
bunde = this.getIntent().getExtras();
bunde.getData();


代码中的putData()与getData()泛指放数据和取数据。真实应用要根据不同数据类型来分别对待。

Bundle中支持的数据类型还是很丰富的,除常用数据类型以外(int,float,double...),还有针对Bitmap的读取getParcelable与写入
putParcelable等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐