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

来源:互联网 发布:网络保密整改报告 编辑:程序博客网 时间:2024/05/23 00:14

    在上例中(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就是这个数据容器的应用载体。

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

 

 

 

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

 

Bundle中支持的数据类型还是很丰富的,除常用数据类型以外(int,float,double...),还有针对Bitmap的读取getParcelable与写入putParcelable等等。