Android2个Activity之间传递对象

本文详细介绍了在Android中如何通过Intent在两个Activity之间传递对象数据,包括实现Serializable接口和Parcelable接口的方法。Parcelable虽然更高效,但实现过程相对复杂,需要重写多个方法。总结了Serializable与Parcelable的主要区别。
摘要由CSDN通过智能技术生成

为了实现android activity之间的数据传递,主要利用意图Intent 对象的方法来完成。

基本数据类型的传递是相当简单了,主要通过如下方式完成如下:

putExtra方法来完成。

这里就不再描述。


主要是传递对象类型数据。

1、实体类需要先序列化实现Serializable接口,利用Bundle.putSerializable(Key,Object);完成数据传递。

2、实体类实现Parcelable接口,利用Bundle.putParcelable(Key, Object);完成数据传递。


在另外一个activity中通过getIntent().getSerializableExtra("key"),或getIntent().getParcelableExtra("key")获得数据。

实现Parcelable步骤

1)implements Parcelable

2)重写writeToParcel方法,将你的对象序列化为一个Parcel对象,即:将类的数据写入外部提供的Parcel中,打包需要传递的数据到Parcel容器保存,以便从 Parcel容器获取数据

3)重写describeContents方法,内容接口描述,默认返回0就可以

4)实例化静态内部对象CREATOR实现接口Parcelable.Creator

public static final Parcelable.Creator<T> CREATOR

注:其中public static final一个都不能少,内部对象CREATOR的名称也不能改变,必须全部大写。需重写本接口中的两个方法:createFromParcel(Parcel in) 实现从Parcel容器中读取传递数据值,封装成Parcelable对象返回逻辑层,newArray(int size) 创建一个类型为T,长度为size的数组,仅一句话即可(return new T[size]),供外部类反序列化本类数组使用。

简而言之:通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象。也可以将Parcel看成是一个流,通过writeToParcel把对象写到流里面,在通过createFromParcel从流里读取对象,只不过这个过程需要你来实现,因此写的顺序和读的顺序必须一致。

代码如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值