优雅的实现Parcelable接口

以往实现Parcelable接口需要重写好几个函数,十分影响效率,现在Android拿出了一个更加便捷的方案,通过kotlin-parcelize插件一键就能实现Parcelable接口。一起看看吧。
第一步:
引入插件kotlin-parcelize

plugins {
    ...
    id 'kotlin-parcelize'
}

第二步:
继承Parcelable接口

data class PhotoItem(
    ...
): Parcelable

第三步:
使用@Parcelize标记

@Parcelize data class PhotoItem(
    ...
): Parcelable

这就实现了一个Parcelable接口,是不是比以前快多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现Parcelable接口,需要以下几个步骤: 1. 在数据类型所在的包下,创建一个实现Parcelable接口的类,例如: ``` public class MyData implements Parcelable { private int id; private String name; // 构造方法、getter和setter等... // 实现Parcelable接口的方法 @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(id); dest.writeString(name); } public static final Parcelable.Creator<MyData> CREATOR = new Parcelable.Creator<MyData>() { @Override public MyData createFromParcel(Parcel source) { return new MyData(source); } @Override public MyData[] newArray(int size) { return new MyData[size]; } }; private MyData(Parcel in) { id = in.readInt(); name = in.readString(); } } ``` 在这个例子中,我们定义了一个MyData类,它有两个属性:id和name。这个类实现Parcelable接口,并实现了describeContents()和writeToParcel()方法。 2. 在writeToParcel()方法中,我们需要将MyData对象的属性写入到Parcel中。这里我们使用了Parcel的writeInt()和writeString()方法,将id和name写入Parcel中。 3. 在CREATOR实例变量中,我们定义了一个Parcelable.Creator对象,它有两个方法:createFromParcel()和newArray()。createFromParcel()方法用于从Parcel中读取MyData对象,newArray()方法用于创建一个MyData数组。 4. 在MyData的构造方法中,我们从Parcel中读取id和name属性。 完成以上步骤后,MyData类就实现Parcelable接口,可以作为Intent的数据类型使用。在Intent中传递MyData对象时,可以使用putExtra()方法或putParcelableArrayListExtra()方法。在接收Intent的Activity中,可以使用getParcelableExtra()方法或getParcelableArrayListExtra()方法获取MyData对象或MyData对象的ArrayList。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值