[解決済み] viewModelsでviewModelを取得するには?(フラグメント-ktx)
2022-12-04 12:28:17
質問
アクティビティとそのフラグメントのすべてに対して、単一のビューモデルを使用しています。
そこで、初期化するために
viewmodel
の中にこの設定コードを書かなければなりません。
onActivityCreated
に書く必要があります。
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel = ViewModelProviders.of(activity!!).get(NoteViewModel::class.java)
}
Android KTXの拡張ページを徹底的に調べました:( こちらをご覧ください )
というように、ビューモデルを初期化できることがわかりました。
// Get a reference to the ViewModel scoped to this Fragment
val viewModel by viewModels<MyViewModel>()
// Get a reference to the ViewModel scoped to its Activity
val viewModel by activityViewModels<MyViewModel>()
というわけで、gradle(app)に以下の依存関係を追加しました。
//ktx android
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.fragment:fragment-ktx:1.0.0'
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
しかし
viewModels/activityViewModels
を使おうとすると、その参照は見つかりませんでした。
私はいくつかの基本的な例でこれらの拡張機能を使用する方法についてのヘルプが必要です私は例を検索しようとしましたが、何も見つかりませんでした。
どのように解決するのですか?
ようやく安定版を手に入れました。
に移行した後
implementation 'androidx.fragment:fragment-ktx:1.1.0'
に移行した後、別の問題に直面しました。
コンパイラーエラーです。
JVM ターゲット 1.8 でビルドされたバイトコードを、JVM ターゲット 1.6 でビルドされているバイトコードにインライン化することができません。 JVMターゲット1.6でビルドされているバイトコードにインライン化することはできません。
build.gradle (モジュール:app)
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
}
kotlinOptions {
jvmTarget = "1.8"
}
上記をすべて適用したところ、問題は解決しました。
皆さん、ありがとうございます。
関連
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] ProjectScopeServices に Factory タイプのサービスはありません。
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JVMターゲット1.8でビルドされたバイトコードをJVMターゲット1.6でビルドされているバイトコードにインライン化することができない
-
[解決済み] RecyclerView.Stateを使って、RecyclerViewのスクロール位置を保存するには?
-
[解決済み] BottomSheetDialogFragmentの状態をexpandedに設定する。
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] データベースでリサイクルビューを使用する
-
[解決済み] Gmailの3分割アニメーションシナリオの完全動作サンプル?
-
[解決済み] TabLayoutに対応したandroidデザインでタブテキストのフォントを変更する
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] FragmentPagerAdapterのgetItemが呼び出されない
-
[解決済み] アンドロイドボタンセレクター