ViewModelProviders.of(getActivity())“无法解析(android.app.Activity)的方法”

时间:2018-03-10 14:26:53

标签: android android-fragments viewmodel

我目前正在尝试在视图模型Android ViewModels的帮助下在我的两个片段之间共享数据。

在本文中,他们使用“ViewModelProviders.of(getActivity())。get(SharedViewModel.class);”在片段中获得模型。

我的问题是,当我将完全相同的行写入我的片段时,我得到一个“无法解析(android.app.Activity)的方法”错误

a+

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:7)

ViewModelProviders要求您使用FragmentActivity(或从中派生的内容)而非Activity作为活动的基类。

答案 1 :(得分:0)

如果您尝试在应用仍在使用android.support.v4的情况下将gradle文件中的androidx导入,则您可能还会从Cannot resolve method 'of(android.support.v4.app.FragmentActivity)'中收到类似ViewModelProviders.of(getActivity())的错误消息

这与要询问的问题不同,但是在同一个球场上,当我遇到问题时,它在Google中排名第一,所以我将其发布!

答案 2 :(得分:0)

只需将getActivity()强制转换为特定的活动。这个对我有用。例如:

model = ViewModelProviders.of((MainActivity)getActivity()).get(UserAccountViewModel.class);