gpt4 book ai didi

android - 无法解析 fragment 中的 ViewModelProvider 构造?

转载 作者:行者123 更新时间:2023-12-03 13:25:07 26 4
gpt4 key购买 nike

我花了很多时间试图弄清楚为什么在下面的代码中(接近尾声),我在 ViewModelProvider(this) 上收到错误。我也试过 getActivity() 而不是 'this',同样的问题。我得到的错误是“无法解析构造函数......”


import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;



public class ItemSetupFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_setup, container, false);

return view;
}

@Override
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

ItemSetupFragmentModel model = new ViewModelProvider(this).get(ItemSetupFragmentModel.class);
model.getKids().observe(this, users -> {
// update UI
});
}
}

Image showing compilation error in Android Studio

最佳答案

首先,您需要使用最新版本的生命周期扩展。它应该是:

implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"

或任何更新版本。

那么你应该使用 requireActivity()而不是 getActivity() .通过这种方式,您将确保附加 Activity 而不是获得 NullPointerException .
ItemSetupFragmentModel model = new ViewModelProvider(requireActivity()).get(ItemSetupFragmentModel.class);

注: ViewModel OverviewDeclaring Dependencies

将库添加到 Gradle 文件后,我不得不重新启动缓存。
无需使用 requireActivity() , this足够的。

关于android - 无法解析 fragment 中的 ViewModelProvider 构造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60070233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com