Android中Activity之间传递数据详解

来源:互联网 发布:mac如何阅读caa文件 编辑:程序博客网 时间:2024/05/16 01:12

    Activity之间传递数据一般有两大种方式:1、通过Intent结合Bundle传递数据 2、只使用Intent传递数据

    下面通过一个例子来演示两种方式的实现,MainActivity代码如下:

   

    该MainActivity界面布局很简单,只有一个按钮button用于点击跳转到另一个Activity即MyActivity,在MainActivity的最后我们定义了Person类并且使其实现了Serializable(可序列化)接口,用作我们之后要传递的对象数据。

    首先我们看在按钮点击响应代码块中的第一种传递数据的方式,通过intent.putExtra("name","曙光女神");intent.putExtra(“lover”,p1)以key-value对的形式存入数据,指定了名字为“曙光女神”,情人是“潘森”!

    接下来看第二种传递数据方式,先创建了一个Bundle对象bundle,之后通过bundle.putInt("age",26);存入int,long等各种类型的数据;通过bundle.putSerializable("enemy",p2);向Bundle中放入一个可序列化对象;最后通过intent.putExtras(bundle);向Intent中放入需要携带的数据包。

    MyActivity中的代码如下:

   

    先通过getIntent()方法获得启动该Activity的Intent,之后就可以通过如代码所示方式取出传递过来的数据了,需要说明的是可以直接通过Intent取出它所携带的Bundle数据包中的数据!

    总结:两种方式相比较,第二种方式更简便且基本功能都可以实现!★需要说明的是通过Intent重载的putExtra(String name,Xxx value),getXxxExtra(String name)来传递数据原理上依旧是存取Intent所携带的Bundle中的数据,只是做了良好的封装!

   

0 0