[解決済み] 2020/21のアクティビティでViewModelのInstanceを取得する方法とは?
質問
私はmvvmパターンを初めて使用します。私はメインアクティビティ用のViewModelを作成しました。今、私はメインアクティビティでViewModelのインスタンスを取得したいです。
Stackoverflowのほとんどのチュートリアルや回答では、以下のように使用することが推奨されています。
ViewModelProviders.of(...
しかし、これは廃止されています。
で、stackoverflowのこの質問によると。
ViewModelProviders は 1.1.0 で非推奨となりました。
onCreateのメインアクティビティで、私は次のようにします(そして、私はすでにそれを実行していたと誓うことができました)。
mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
しかし、適切なコンストラクタが見つからないというエラーが表示されます。
error: no suitable constructor found for ViewModelProvider(MainActivity)
また、MainActivityがViewModelStoreOwnerであることを明確にするために、以下の変数を作成しました。
ViewModelStoreOwner vmso = this;
で、その変数をコンストラクタに以下のように記述します。
mainActivityViewModel = new ViewModelProvider(vmso).get(MainActivityViewModel.class);
解決方法は?
gradleファイルを更新する必要があります。
<ブロッククオート実装 'androidx.lifecycle:lifecycle-extensions:2.2.0' です。
そして、この変更により、あなたが言及したコンストラクタにActivityを渡すことができるようになりました。
mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);
関連
-
[解決済み] エラー - Android リソースのリンクに失敗しました (AAPT2 27.0.3 Daemon #0)
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Androidのローテーションでアクティビティを再開する
-
[解決済み] アクティビティで本来追加されるウィンドウが流出した
-
[解決済み] グリッドレイアウトにおけるフリングジェスチャーの検出
-
[解決済み] ViewPagerとフラグメント - フラグメントの状態を保存する正しい方法は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android TextView : "setTextで表示されたテキストを連結しない" について
-
[解決済み】Android ADB デバイスがオフラインで、コマンドを発行できない。
-
[解決済み] シンボル 'context' を解決できない
-
[解決済み] カスタムアダプタからnotifyDataSetChangeが機能しない
-
[解決済み】ビットマップを保存する場所について
-
[解決済み】sendUserActionEvent()がnullである。
-
[解決済み] Androidでイメージビューの背景を透明に設定する
-
[解決済み] setBackgroundDrawable() 非推奨
-
[解決済み] Android M パーミッション : shouldShowRequestPermissionRationale()関数の使用方法について混乱しています。
-
[解決済み】ViewModelProvidersは1.1.0で非推奨になりました。