放入“意图”中的对象列表

问题描述 投票:0回答:1

我在ViewModel中有一个liveData,该对象返回对象列表(mChannelList: MutableLiveData<List<Channels>> = MutableLiveData())。我想使用putExtraIntent将此列表发送到另一个活动。我在下面编写代码,但是当代码传入startActivity时,请勿转到新活动(MainActivity)。

我将对象列表正确地放在Intent中了吗?

SplashScreenActivity.kt

(...)

            splashScreenViewModel.getList()?.observe(this, Observer { it : List<Channels> ->
                println("*********************** ${it}")
                val intent = Intent(this, MainActivity::class.java)
                intent.putExtra("EXTRA_PEOPLE", ArrayList(it))
                startActivity(intent)
            })

数据类:

data class Channels (
    var Id: Int?,
    var Title: String?,
    var CallLetter: String?,
    var ChannelPosition: Int?
)

MainActivity.kt

(...)

val bundle = intent.extras
val arr = this.intent.getParcelableArrayListExtra<Parcelable>("EXTRA_PEOPLE")

println("a lista : ${arr[0]}")
android kotlin android-intent
1个回答
0
投票
如果您想以同样的方式继续,有两个原因导致您的MainActivity不被调用。

观察者无法在您的ViewModel类中接收新数据。

    数据类应扩展Pacelable并添加注释@Parcelize。
  • 喜欢这个:
  • @Parcelize data class Channels ( var Id: Int?, var Title: String?, var CallLetter: String?, var ChannelPosition: Int? ) : Parcelable
  • © www.soinside.com 2019 - 2024. All rights reserved.