Как передать MutableList объекта через намерение в kotlin - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть класс данных как

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

, и в одном упражнении я инициализировал взаимно изменяемый список, а также добавил некоторые данные в MutuableList

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

Теперь я использовал Intent для передать listRandom следующему действию

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

Теперь в следующем задании я пытаюсь получить данные как

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

, поэтому при получении данных из намерение говорит: Ожидаемый Parcelable, но найден MutuableList

Так что я пытаюсь сделать, это просто передать список объектов, так есть ли способ сделать это другим способом?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Используйте putParcelableArrayListExtra с ArrayList

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

И получите с

val list=intent?.getParcelableArrayListExtra<Workouts>("workoutlist")
0 голосов
/ 16 апреля 2020

Просто конвертируйте mutableListOf<Workouts>() с ArrayList, как показано ниже

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

Следующее действие

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

это будет работать.

...