web-dev-qa-db-fra.com

Impossible de résoudre la construction de ViewModelProvider dans un fragment?

J'ai passé beaucoup de temps à essayer de comprendre pourquoi dans le code ci-dessous (vers la fin), j'obtiens une erreur sur ViewModelProvider (this). J'ai également essayé getActivity () au lieu de "this", même problème. L'erreur que j'obtiens est "Impossible de résoudre le constructeur ..."


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

8
LeaningAndroid

Vous devez instancier votre viewModel en:

ItemSetupFragmentModel model = ViewModelProviders.of(this).get(ItemSetupFragmentModel.class);
0
Bheem