[解決済み] Android MVVM ViewModelでContextを取得する方法
2022-06-18 06:34:24
質問
私はアンドロイドアプリでMVVMパターンを実装しようとしています。私はViewModelsがアンドロイド固有のコードを含むべきではないと読んだことがあります(テストを容易にするために)、しかし私は様々なこと(xmlからのリソースの取得、環境設定の初期化など)のためにコンテキストを使用する必要があります。これを行うための最良の方法は何ですか?私が見たのは
AndroidViewModel
はアプリケーションコンテキストへの参照を持っていますが、それはアンドロイド固有のコードを含んでいるので、私はそれがViewModelにあるべきかどうかわかりません。また、これらはアクティビティライフサイクルイベントに結びつきますが、私はコンポーネントのスコープを管理するためにdaggerを使用しているので、それがどのように影響するかはわかりません。私はMVVMパターンとDaggerの初心者なので、どんな助けでも感謝します。
どのように解決するのですか?
結局、ViewModelに直接Contextを持たせるのではなく、ResourceProviderなどの必要なリソースを与えてくれるプロバイダクラスを作って、そのプロバイダクラスをViewModelにインジェクトさせました。
関連
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
android block certificate validation CertPathValidatorException: 認証パスのトラストアンカーが見つかりません
-
android exception - aapt.exe has stopped working.
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Androidで'Context'を取得する静的な方法?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
repo: コマンドが見つかりません
-
Androidで、onTouchEventでダブルクリックを実装し、ダブルクリックイベントとして判定する方法
-
Android ProgressBarの色を変更する
-
アンドロイドスタジオ学習入門