gpt4 book ai didi

kotlin 中的 Android ViewModelProviderFactory

转载 作者:IT老高 更新时间:2023-10-28 13:47:12 25 4
gpt4 key购买 nike

我正在试验 Architecture Components来自谷歌。具体来说,我想实现一个 ViewModelProvider.Factory创建一个带有构造函数参数的 ViewModel,如下所示:

class MyFactory(val handler: Handler) : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>?): T {
return MyViewModel(handler) as T
}
}

我的 ViewModel 如下所示:

class MyViewModel(val handler: Handler) : ViewModel() 

任何人都知道最后如何避免讨厌的 Actor 阵容:

return MyViewModel(handler) as T

最佳答案

你可以写:

class MyFactory(val handler: Handler) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return modelClass.getConstructor(Handler::class.java).newInstance(handler)
}
}

这适用于任何接受 Handler 作为构造函数参数的类,如果该类没有正确的构造函数,则会抛出 NoSuchMethodException

关于kotlin 中的 Android ViewModelProviderFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com