質問: android初心者です。 MVVMパターンでの設計について学んでいます。 基本的なViewModelの実装などはできるようになってきたのですが、 画面遷移(startActivity)をどのように実装するのが良いのかわかっていません。 特に、値を渡す方法も知りたいです。 原始的(?)な実装方法であれば、intentに値をセットして、 startActivityを元activity内で使えば良いと思いますが、 MVVMパターンにおいて、どのように実装すればいいのでしょうか? なかなか参考となる記事が見つからなかったので、 よろしくお願いします。
回答: 画面遷移などのViewに依存する処理は原則としてView側で実装します。実装方法は従来どおりIntent等を使う形になります。MVVM用の特別な方法が用意されているわけではありません。 ViewModelから画面遷移の処理を呼ぶには、 1. ViewModel側: 画面遷移イベントを伝えるもの(LiveDataなりRxのSubjectなり)を用意 2. View側: 上記のイベントを観測し画面遷移処理を呼び出す という風にします。値を渡したいならLiveDataなどを通して渡せばOKです。 公式サンプルの この辺 などが参考になるかと思います。