#初めに
今回は、単一Activity複数Fragmentでの実装の際に、遷移先の画面でデータの更新があったときに遷移元に更新があったことを伝えたい場面が多くあると思います。
そんなときに一番簡単で一番実装しやすい方法を記事として残しておきます。
###やること
では、実際にどの様なコードを書くのかと言いますとsetFragmentResult
を使います。
setFragmentResult
とは、setFragmentResultListener
と対になっておりsetFragmentResult
にはrequestKey
に鍵としてString
を渡しresult
に値としてBundle
を入れることができます。
setFragmentResultListener
ではrequestKey
に鍵としてString
を渡し、その鍵に格納された値を取り出すことができます
そのため、コードで書く場合以下の様になります
FirstFragment
setFragmentResultListener(requestKey = REQUEST_KEY) { key, bundle ->
if (bundle.getBoolean(REQUEST_KEY, false)) {
// TODO
}
}
SecondFragment
setFragmentResult(
requestKey = REQUEST_KEY,
result = bundleOf(RESULT_KEY to true)
)
こうすることで、別画面での更新状態を取得することができます。
###最後に
あくまで一例として、一番実装しやすい物を今回記事として書かせていただきました
補足等がございましたらぜひコメントを残していってください