Navigationでログイン処理

この動画を見ていたらNavigation2.3から戻り値を返して画面を戻る事ができると知ったので動画のログインサンプルを写経しました。

MainFragment

このFragmentはログイン済みであれば通常処理を行い、未ログインの場合はログインFragmentへ遷移させます。

if (!(activity as MainActivity).getIsLogin())
この部分は本来Repositoryからログイン情報を取得する部分です。

stateHandle.getLiveData<Boolean>
ここでLoginFragmentから戻ってきた時にログインに成功したのかどうかを受け取ります。

LoginFragment

ログイン処理を行うFragmentです。
成功と失敗をそれぞれボタンにしてしまいました。

savedStateHandle.set(LOGIN_SUCCESSFUL, true)
ここでMainFragmentへ返却する値を設定します。
今回はBooleanですが、Stringなども返却できます。

最後に

サンプルプロジェクト

ログイン部分だけを抜粋して記事にしましたが、動画を見てもらうことをおすすめします。

この記事が気に入ったらサポートをしてみませんか?