小编mpo*_*dar的帖子

从AndroidViewModel扩展时如何使用ViewModelProvider.Factory

我想向我的ViewModel发送一个额外的参数,但这是从AndroidViewModel扩展的。如何将此参数添加到ViewModelFactory类?

视图模型

class ProjectViewModel(application: Application) : AndroidViewModel(application) {

    // need a param for project id...
}
Run Code Online (Sandbox Code Playgroud)

ViewModelFactory

class ProjectViewModelFactory(val projectId: Int): ViewModelProvider.Factory {

    override fun <T : ViewModel?> create(modelClass: Class<T>): T {
        // need to send this...
        return ProjectViewModel(projectId) as T
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我注意到在文档中它说:AndroidViewModel 子类必须具有一个接受Application作为唯一参数的构造函数。

所以我不知道做我想做的事是否可行(或很好)。

android android-viewmodel android-architecture-components android-jetpack

6
推荐指数
1
解决办法
2253
查看次数