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
});
}
}
Vous devez instancier votre viewModel en:
ItemSetupFragmentModel model = ViewModelProviders.of(this).get(ItemSetupFragmentModel.class);