このページには広告が含まれる場合があります。
AndroidにおけるGoogle先生推奨の設計パターン「MVVM」の中核をなす「ViewModel」を使うためのライフサイクル(lifecycle)ライブラリが、2.2.0にアップデートされたことによって、ViewModelのインスタンスを取得するための「ViewModelPrviders.of」メソッドが非推奨になってしまいました、、、
ですので、バージョン2.2.0以降は、
もくじ
1)Fragmentのktxライブラリを入れる(appレベルのbuild.gradleファイル)
implementation "androidx.fragment:fragment-ktx:1.2.1"
(1.2.1の箇所は最新バージョンに)
2)Java8言語機能を使えるように設定(appレベルのbuild.gradleファイル)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// For Kotlin projects
kotlinOptions {
jvmTarget = "1.8"
}
3)ViewModelのインスタンス取得方法のコード修正
他のFragmentとViewModelを共有しない場合は「by viewModels()」
他のFragmentとViewModelを共有する場合(SharedViewModel)は「by activityViewModels()」を使用します。
これで、これまで「lateinit var」だったのを「val」にすることが出来ます。
(詳しくは、下の動画で解説していますので、よろしければご覧ください)