web-dev-qa-db-ja.com

ViewModelProviders.of(getActivity()) "(Android.app.Activity)のメソッドを解決できません"

私は現在、ビューモデル Android ViewModels を使用して、2つのフラグメント間でデータを共有しようとしています。

この記事では、「ViewModelProviders.of(getActivity())。get(SharedViewModel.class);」を使用しています。 Fragmentでモデルを取得します。

私の問題は、フラグメントにまったく同じ行を書き込むと、「(Android.app.Activity)のメソッドを解決できません」というエラーが発生することです

model = ViewModelProviders.of(getActivity()).get(UserAccountViewModel.class);

誰かがこれを手伝ってくれる?

9
Tobias420d

ViewModelProvidersでは、アクティビティの基本クラスとして、FragmentActivityではなくActivity(またはそれから派生したもの)を使用する必要があります。

11
CommonsWare

アプリがまだAndroid.support.v4を使用しているときにgradleファイルにandroidxをインポートしようとした場合、Cannot resolve method 'of(Android.support.v4.app.FragmentActivity)'からViewModelProviders.of(getActivity())のような同様のエラーが発生する場合もあります

これは、尋ねられる質問とは異なりますが、同じ球場にあり、問題が発生したときにGoogleで最初にランクされているので、投稿します!

1
georgiecasey

GetActivity()を特定のアクティビティにキャストするだけです。わたしにはできる。例えば:

model = ViewModelProviders.of((MainActivity)getActivity()).get(UserAccountViewModel.class);
0
KeitL