gpt4 book ai didi

android - 如何在没有 ViewModelProviders 类的情况下获得 ViewModel?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:00 30 4
gpt4 key购买 nike

关于过去的问题How to get a ViewModel? ,以及我发现的例子,它并不能解决我的问题。我没有在那里发表评论的权限,所以我不得不再次询问。我没有 ViewModelProviders 类,我想在我找到的所有示例和文档中使用“of”方法,例如

model = ViewModelProviders.of(this).get(Something.class);

在 Android Studio 中,我找不到要添加为依赖项的“android.arch.lifecycle:extensions”。当我搜索时它说“没有什么可显示的”。我在 API 27。所以,尝试使用未弃用的元素,我在 fragment 中有这个:

public class EventDetailsFragment extends Fragment
{
EventViewModel viewModel;

@Override
public void onActivityCreated (Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
ViewModelProvider.Factory factory = ViewModelProvider.AndroidViewModelFactory.getInstance(getActivity().getApplication());
// HERE IS THE ISSUE: Seems not good practice to have to create a new ViewModelProvider every time this Fragment is created.
// Perhaps I should just create a singleton ViewModelProvider in the Activity or Application,
// so here could call getActivity().getViewModelProvider(this, factory).
ViewModelProvider viewModelProvider = new ViewModelProvider(this, factory);
viewModel = viewModelProvider.get(EventViewModel.class);
...
}

我该怎么办?

最佳答案

打开app/build.gradle,找到dependencies block 并手动添加生命周期依赖到列表:

dependencies {
implementation 'android.arch.lifecycle:extensions:1.1.1'

// ...
}

同步项目,之后您应该能够获得 ViewModel 的实例。

关于android - 如何在没有 ViewModelProviders 类的情况下获得 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51867122/

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