如何通过 kotlin 中的意图传递对象的 MutableList

How to pass MutableList of object via intent in kotlin

我的数据class为

@Parcelize
data class Workouts(val id:Int ,val name:String,val image:Int,val time:Long):Parcelable

并且在一个 activity 中我已经初始化了可变列表并且还向 MutuableList 添加了一些数据

   val listRandom= mutableListOf<Workouts>()
     listRandom.add(some datas............)

现在我已经使用 Intent 将 listRandom 传递给下一个 activity

 val intent =Intent(this,StartWorkout::class.java)
            intent.putExtra("workoutlist",listRandom as Parcelable)

接下来 activity 我正在尝试接收数据

 val randomWorkout =intent.getParcelableExtra<MutableList<Workouts>>("workoutlist")

所以错误是在从意图接收数据时出现的,它说 Expected Parcelable but found MutuableList

所以我想做的只是传递对象列表,所以有没有其他方法可以做到这一点?

只需将您的 mutableListOf<Workouts>() 转换为 ArrayList,如下所示:

val listRandom= ArrayList<User>()
val intent = Intent(this, StartWorkout::class.java)
intent.putExtra("workoutlist",listRandom)

下一个Activity:

val randomWorkout : ArrayList<User> = intent.getParcelableExtra("workoutlist")

它会起作用。

putParcelableArrayListExtraArrayList

结合使用
val listRandom= ArrayList<Workouts>()
val intent = Intent(this, StartWorkout::class.java)
intent.putParcelableArrayListExtra("workoutlist",listRandom)

并通过

获取
val list=intent?.getParcelableArrayListExtra<Workouts>("workoutlist")