ViewModelProviders.of(活动)错误

时间:2018-07-28 02:46:39

标签: android-studio kotlin viewmodel

我不知道该怎么办,只能在这里询问。 当我尝试从附加到活动的片段访问ViewModel时:


 private val userViewModel by lazy { ViewModelProviders.of(activity).get(UserProfileViewModel::class.java) }

我收到“活动”错误,说“类型不匹配:推断的类型是FragmentActivity?但期望使用FragmentActivity”。

到目前为止,我看到的每个示例都以这种方式使用它,但我无法使其正常工作。 不确定是否已弃用,我应该放弃。

1 个答案:

答案 0 :(得分:0)

您的问题是,当延迟加载视图模型时,activity可以为null,这意味着活动类型为FragmentActivity?,而不是必需的FragmentActivity

ViewModel初始化通常不使用委托完成,而是在生命周期方法中进行,在该方法中,您确定已附加到活动,例如onViewCreated()或onActivityCreated()中。

您可以放心使用:

userViewModel = ViewModelProviders.of(activity!!).get(UserProfileViewModel::class.java)