在Activity之间传递对象

今天来讲向一个Activity中传递对象

在这里声明,如果一个对象要被传递,那么该对象必须通过Serializable接口或者Parcelable接口来实现对象的序列化。

Serializable为JAVA提供的对象序列化接口:效率低
Parcelable为Android提供的对象序列化接口:移动平台专用,效率高

下面,我们就针对Parcelable接口来实现对象的传递。

首先,我们来看MainActivity,这是发送对象的活动。

创建意图
Intent i = new Intent(MainActivity.this,TheAty.class);
TheAty是接收对象的活动。

通过putExtra来传递对象
i.putExtra(“user”,(Parcelable)new User(“袁雾头”,2));

在这里,我们要建立一个User类,并实现Parcelable接口
public class User implements Parcelable

其构造方法为
这里写图片描述

通过Parcelable来实现对象序列化接口,需要实现下面两个方法
这里写图片描述
这里写图片描述

我要在这里解释一下:

如果某个类实现了这个接口,那么它的对象实例可以写入到Parcel中,并且能够从中恢复,并且这个类必须要有一个static的field,并且名称要为CREATOR,这个field是某个实现了Parcelable.Creator接口的类的对象实例。

createFromParcel函数创建实现Parcelable接口的某个类的一个新的对象实例,并且用从给定的Parcel中获取的数据进行实例化,Parcel中的数据是在之前通过Parcelable.writeToParcel方式写入的数据。

newArray函数创建实现Parcelable接口的某个类的一个新的对象数组,数组中的每个项都被初始化为null。

到这来,我们完成了User类中的相关操作。

现在,我们来到TheAty,对象的接收方
在接受方只要实现下面两行代码就完成了接收
Intent i = getIntent();
User user = (User) i.getParcelableExtra(“user”);

到此,在Activity之间传递对象我们就讲完了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值