gpt4 book ai didi

android - 如何在模块中添加 View 模型?

转载 作者:行者123 更新时间:2023-12-03 11:01:35 24 4
gpt4 key购买 nike

在 Dagger 中,如何将模型添加到模块?
例如,我通过以下方式添加了演示者:

@Module
class AboutModule(val appContext: Context) {

@FragmentScope
@Provides
fun providePresenter(): AboutListContract.Presenter {
return AboutListPresenter(appContext = appContext)
}
}

现在我想添加我的 View 模型,还有 appContext。
class AboutViewModel(val appContext: Context): ViewModel() {

更新:
我可以像这样添加我的 View 模型吗?
@Module

class AboutModule(val appContext: Context) {

@FragmentScope
@Provides
fun provideModel(model: AboutViewModel): ViewModel {
return AboutViewModel(appContext = appContext)
}
}

最佳答案

我用下一个解决方案解决了我的问题:

@Module
class AboutModule(val appContext: Context) {

@FragmentScope
@Provides
fun provideFactory(): AboutViewModelFactory {
return AboutViewModelFactory(appContext)
}
}

在 fragment 中这样写:
类 AboutFragment : BaseFragment(), OnItemClickListener {
lateinit var viewModel: AboutViewModel
@Inject lateinit var viewModelFactory: AboutViewModelFactory

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
injectDependencies()

viewModel = ViewModelProviders
.of(this, viewModelFactory)
.get(AboutViewModel::class.java)
}

private fun injectDependencies() {
activity?.let {
DaggerAboutComponent.builder().aboutModule(AboutModule(it)).build().inject(this)
}
}

好建议: https://stackoverflow.com/a/60884492/6387618

关于android - 如何在模块中添加 View 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60884402/

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