我不知道该怎么办,只能在这里询问。 当我尝试从附加到活动的片段访问ViewModel时:
private val userViewModel by lazy { ViewModelProviders.of(activity).get(UserProfileViewModel::class.java) }
到目前为止,我看到的每个示例都以这种方式使用它,但我无法使其正常工作。 不确定是否已弃用,我应该放弃。
答案 0 :(得分:0)
您的问题是,当延迟加载视图模型时,activity
可以为null,这意味着活动类型为FragmentActivity?
,而不是必需的FragmentActivity
。
ViewModel初始化通常不使用委托完成,而是在生命周期方法中进行,在该方法中,您确定已附加到活动,例如onViewCreated()或onActivityCreated()中。
您可以放心使用:
userViewModel = ViewModelProviders.of(activity!!).get(UserProfileViewModel::class.java)