【发布时间】:2020-04-21 17:30:47
【问题描述】:
我在 ViewModel 中有一个 liveData,它返回一个对象列表 (mChannelList: MutableLiveData<List<Channels>> = MutableLiveData())。我想使用Intent 的putExtra 将此列表发送到另一个活动。我在下面编写代码,但是当代码通过 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]}")
【问题讨论】:
-
我认为你不需要那么复杂。当您使用 ViewModel 时,您可以简单地在 MainActivity 中访问它。请记住在实例化 ViewModel 时使用应用程序的上下文。请参阅documentation 了解更多信息。
-
你是说当你的观察者触发时你的 MainActivity 没有启动?或者您没有在 MainActivity 中获取任何数据?
-
是的,我的 MainActivity 没有启动 @JuanMartinez
标签: android kotlin android-intent