我正试图通过Kotlin中的意图将活动 A 中的数据传递给活动 B 。
问题是我有videos: MutableList<Video>
而intent.putParcelableArrayListExtra("VIDEOS", videos)
只接受ArrayList<out Parcelable>
作为参数。
问题
*。如何将活动 A 中的mutableList数据发送到活动 B ?
*。或者我是否必须将其转换为ArrayList<Video>
?
PS: Video
实现了Parcelable
答案 0 :(得分:7)
如果你想坚持通过Intent传递它,那么将它转换为ArrayList
(或者将其存储为首位?)是一个简单的解决方案。有一个ArrayList
constructor以一个集合作为参数:
intent.putParcelableArrayListExtra("VIDEOS", ArrayList(videos))
答案 1 :(得分:1)
对于那些询问 Parcelable 类是如何创建的,这是我在 Kotlin 中提出的解决方案
Parcelable 类:
@Parcelize
data class ExampleModel(
var stringOne: String,
var stringTwo: String): Parcelable
然后在活动 A 中,您可以创建一个 ArrayList 并通过意图将其发送到活动 B
private var exampleMutableList: MutableList<ExampleModel> = arrayListOf()
exampleMutableList.add(ExampleModel("hello", "world"))
intent.putExtra("example", ArrayList(exampleMutableList))
在 Activity B 中,我们可以接收到我们的 ArrayList:
exampleMutableList = intent.getParcelableArrayListExtra<ExampleModel>("example") as ArrayList<ExampleModel>
一切顺利!