2
1

More than 1 year has passed since last update.

別画面からのリロード処理トリガーを実装したい

Posted at

初めに

今回は、単一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)
            )

こうすることで、別画面での更新状態を取得することができます。

最後に

あくまで一例として、一番実装しやすい物を今回記事として書かせていただきました
補足等がございましたらぜひコメントを残していってください

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1