在实现Parcelable时读取和写入UUID,图像,音频和视频

时间:2014-10-04 22:46:29

标签: android parcelable

我想在我编写的自定义类中实现Parcelable,这样我就可以将整个对象从片段传递到片段。每个对象将包含UUID,字符串,图像,视频,音频或四者的某种组合。我也在考虑使用EventBus,但由于我是Android的新手并且想学习,我现在正尝试自己实现Parcelable

我在Google的开发人员指南中使用了this示例,但我找不到读取/写入UUID,图像,视频或音频的方法。例如,有readIntreadStringreadLong等等 - 是否有类似的方法可用于我想做的事情?

任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:3)

所以有两种方法可以做到这一点。最简单的方法是使用writeSerializable(),因为UUIDSerializable。它可能很慢,但可能不是什么大问题,除非你做了数千次:

parcel.writeSerializable(mUuid);

mUuid = (UUID) parcel.readSerializable();

或者,您可以将最高和最低有效位抓取为两个长点:

parcel.writeLong(mUuid.getMostSignificantBits());
parcel.writeLong(mUuid.getLeastSignificantBits());

mUuid = new UUID(parcel.readLong(), parcel.readLong());