SavedStateViewModelFactory需要哪种类型的应用程序

时间:2019-08-12 20:54:47

标签: android kotlin mvvm viewmodel android-savedstate

我试图将一些文本的状态保存到我的主要活动中,我已经建立了一个工厂,该工厂将一个依赖项作为视图模型的构造函数以及SavedStateViewModelFactory的构造函数来传递,以保存该文本的状态。

但是我不能仅使用所有者上下文来做一个实例,它也需要Application,而且我真的不知道如何传递它,因为我的应用程序中没有。

 class ViewModelFactory(val interactor: InteractorClass,val context:Context):ViewModelProvider.Factory {

            val stateHandle = SavedStateViewModelFactory(context)

            override fun <T : ViewModel?> create(modelClass: Class<T>): T {
                return modelClass.getConstructor(InteractorClass::class.java).newInstance(interactor,stateHandle)
            }
        }

然后在我的实例中,我要像这样实例化ViewModel

ViewModelProviders.of(this,ViewModelFactory(InteractorClass(),this)).get(MyViewModel::class.java)

在我不了解的文档中是否存在我未关注的内容?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用

获取应用程序实例
val app = context.applicationContext as Application