2020/03/11

by ViewModels() を使って ViewModel を取得する方法

以前は以下のように [ViewModelProviders](https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders) を使用して [ViewModel](https://developer.android.com/reference/androidx/lifecycle/ViewModel) を取得していましたが、この方法は Deprecated になりました。

```kotlin
val myViewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
```

ドキュメントを見てみると、代わりに kotlin の委譲 `by viewModels()`、もしくは `ViewModelProvider`使い方は最後に参照として書きました を使ってね。と書いてあります。

ところが、`by viewModels()` はどう使うのかが、何処にも書いてありません少なくとも2020年3月10日時点で公式のドキュメントはなさそう。

そこで、ネットの情報とコードを参考に使ってみました。