我想在我编写的自定义类中实现Parcelable
,这样我就可以将整个对象从片段传递到片段。每个对象将包含UUID,字符串,图像,视频,音频或四者的某种组合。我也在考虑使用EventBus
,但由于我是Android的新手并且想学习,我现在正尝试自己实现Parcelable
。
我在Google的开发人员指南中使用了this示例,但我找不到读取/写入UUID,图像,视频或音频的方法。例如,有readInt
,readString
,readLong
等等 - 是否有类似的方法可用于我想做的事情?
任何帮助表示赞赏。谢谢!
答案 0 :(得分:3)
所以有两种方法可以做到这一点。最简单的方法是使用writeSerializable()
,因为UUID
为Serializable
。它可能很慢,但可能不是什么大问题,除非你做了数千次:
parcel.writeSerializable(mUuid);
mUuid = (UUID) parcel.readSerializable();
或者,您可以将最高和最低有效位抓取为两个长点:
parcel.writeLong(mUuid.getMostSignificantBits());
parcel.writeLong(mUuid.getLeastSignificantBits());
mUuid = new UUID(parcel.readLong(), parcel.readLong());