当記事でわかること
・FragmentとActivity間の値受け渡し(Kotlin)・擬似的なFragment間値受け渡し(Kotlin)
背景
Fragment関係のデータ受け渡しの理解とコーディングにハマりかけたため、メモ感覚で今回の記事を書くこととしました。
初投稿なので、お手柔らかにお願いいたします。
大前提
Fragmentとは、Activity上にあるライフサイクルを持ったViewです。*こちらの記事ではFragmentへの理解を前提としております。
また、OSバージョンやエディタ環境のテストは、
筆者環境以外では行っていないため留意ください。
コード
〜FragmentからActivityへデータ渡し〜
・Fragment側
MainFragment.kt
val intent = Intent(activity, MainActivity::class.java)
val test1 = "test1"
val test2 = "test2"
intent.putExtra("test1_key",test1)
intent.putExtra("test2_key",test2)
・Activity側
MainActivity.kt
val test1 = intent.getStringExtra("test1_key")
val test2 = intent.getStringExtra("test2_key")
上記の方法はFragmentが乗っているActivityとは別のActivityへの
値受け渡しが可能です。
〜ActivityからFragmentへデータ渡し〜
・Activity側
MainActivity.kt
val args = Bundle()
args.putString("test1_key",test1)
args.putString("test2_key",test2)
val fragment = MainFragment()
fragment.setArguments(args)
・Fragment側
MainFragment.kt
val test1 = requireArguments().getString("test1_key")
val test2 = requireArguments().getString("test2_key")
上記の方法はActivity上のFragmentへActivityから値渡しが可能です。
全体を通して
キー設定を行うことで値の受け渡しが簡単に行うことができます。フラグメント同士の値受け渡しも擬似的に実装することもできますので、
この記事が値受け渡しの際のバイブルになると嬉しいです。