web-dev-qa-db-ja.com

フラグメントのViewModelProvider構築を解決できませんか?

以下のコードで(終わりに向かって)理由を理解するために多くの時間を費やしてきましたが、ViewModelProvider(this)でエラーが発生します。同じ問題の「これ」の代わりにgetActivity()も試しました。私が得るエラーは「コンストラクタを解決できません...」です


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

次の方法でviewModelをインスタンス化する必要があります。

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