Bundle 在 Activity 之间交互数据

来源:互联网 发布:河南漯河网络电视台 编辑:程序博客网 时间:2024/04/30 00:10

当一个Activity启动另一个Activity时,常常会有一些数据需要传过去,在两个Activity之间有一个信使“Intent”因此我们将需要交换的数据放入Intent中即可。




Intent提供了多个重载的方法来 携带 额外的数据:

  >putExtaras(Bundle data):向Intent中放入需要 携带 的数据包。

  >Bundle getExtras():取出Intent中所 携带 的数据包。

  >putExtra(String name,Xxx value):从Intent中按key-value对的形式存入数据。

  >getXxxExtra(String name):从Intent中按key取出指定类型的数据。


上面方法中的Bundle就是一个简单的数据携带包,该Budle对象包含了多个方法来存入数据:

   >putXxx(String key,Xxx data):向Bundle中放入 Int,Long等各种类型的数据。

   >putSerializable(String key,seralizable):向Bundle中放入一个可序列化的对象。


为了取出Bundle数据携带包里的数据,Bundle提供了如下方法:

  >getXxx(String key):从Bundle中取出 Int,Long等各种类型的数据。

   >getSerializable(String key,Serializable data):从Bundle中取出一个可序列化的对象。

从上面的介绍不难看出,Intent 主要通过 Bundle 对象来携带数据,因此 Intent 提供了 putExtras() 和 getExtras()两个方法。除此之外,Intent 也提供了多个重载的 putExtra(String name,Xxx value),getXxxExtra(String name),那么这些方法存取的数据在哪里呢?其实 intent 提供的 putExtra(String name,Xxx value),getExtra(String name)方法,只是两个便捷的方法,这些方法依然是存取 intent 所携带的 Bundle 中的数据。

下面通过一个实例来介绍两个 Activity 之间如何通过 Bundle 交换数据。

                                                                                                                                                                                          

MainActivity.Java中的核心代码:              Person.java类 :  


                                                                                                                                                                                                                                         BunleActivity.java中的核心代码:                                                                  效果:



1 0