在Kotlin中将一个可变列表从A活动传递到B活动。

8
我正在尝试通过 Kotlin 的意向传递从活动 A 向活动 B 传递数据。问题在于我有一个 videos: MutableList
2个回答

15
将它转换成一个ArrayList(或者一开始就将其存储为一个ArrayList)是如果你想坚持通过Intent传递它的简单解决方案。有一个ArrayList构造函数以集合作为其参数:ArrayList构造函数
intent.putParcelableArrayListExtra("VIDEOS", ArrayList(videos))

当使用“getParcelableArrayListExtra”时,这个数组出现错误时,第二个活动应该如何表现? - charitha amarasinghe

2
对于那些想知道 Parcelable 类如何创建的人,这是我在 Kotlin 中想出的解决方案。
Parcelable 类:
@Parcelize
data class ExampleModel(
        var stringOne: String,
        var stringTwo: String): Parcelable

在Activity A中,您可以创建一个ArrayList,并通过意图将其发送到Activity 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>

祝你一切顺利!


这是一个相当完整的答案,应该被接受。 - Siddhesh Shirodkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接