无法使用ViewModelProvider

时间:2018-03-17 19:11:36

标签: android android-architecture-components android-viewmodel android-architecture-lifecycle android-architecture

我正在尝试获取特定片段的ViewModel类。但ViewModelProvider.of(this).get(UserListViewModel.class)对我不起作用。从" android.support.v4.app.Fragment"扩展我的片段,但它仍然不起作用。 这是代码

package mudasir.android.application.upfit.Fragments;


import android.arch.lifecycle.AndroidViewModel;
import android.arch.lifecycle.ViewModelProvider;
import android.databinding.DataBindingUtil;
import android.os.Bundle;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import mudasir.android.application.upfit.R;
import mudasir.android.application.upfit.ViewModel.UserListViewModel;
import mudasir.android.application.upfit.databinding.FragmentUserListBinding;

/**
 * A simple {@link Fragment} subclass.
 */
public class UserListFragment extends Fragment {

    UserListViewModel userListViewModel;
    FragmentUserListBinding fragmentUserListBinding;

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

        userListViewModel = ViewModelProvider.of(this).get(UserListViewModel.class);

        return view;
    }

}

1 个答案:

答案 0 :(得分:0)

您使用的是错误的课程。它应该是:

userListViewModel = ViewModelProviders.of(this).get(UserListViewModel.class);

请注意,它的 ViewModelProviders