在活动之间传递数组列表,可打包与可序列化

时间:2018-11-30 12:20:33

标签: android arrays arraylist kotlin

我正在尝试另外创建一个Intent的{​​{1}}。

所以我有3种选择:

  1. ArrayList<Byte>
  2. putParceableArrayList(key: String?, value: ArrayList<out Parceable!>?)
  3. putByteArray(key: String?, value: ByteArray?)

我不希望使用第3个选项,因为Parceable对象比Serializable对象(Android: Difference between Parcelable and Serializable?)更快。

放弃此选项,我想使用第一个选项,因为我需要将此对象作为ArrayList而不是本机数组putSerializable(key: String?, value: Serializable?)(在Kotlin上为bytes[])。

问题在于Byte对象是本机对象,因此它不实现Parceable。因此,我不能使用第一个选项,因为它需要ByteArray

我发现,最好的选择是将ArrayList<out Parceable>转换为ArrayList并在拆包时将其转换回ByteArray,如下所示:

ArrayList

哪个是最佳选择?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用Parceler库,它使您的生活更简单,并且可以摆脱所有Parcelable接口样板代码