7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

FragmentとActivity間のデータ受け渡し方法(Kotlin)

Last updated at Posted at 2022-07-01

当記事でわかること

・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から値渡しが可能です。

全体を通して

キー設定を行うことで値の受け渡しが簡単に行うことができます。
フラグメント同士の値受け渡しも擬似的に実装することもできますので、
この記事が値受け渡しの際のバイブルになると嬉しいです。

参考にした記事

argumentsを使いactivityからfragmentにオブジェクトを渡す【Android】【kotlin】

[Android & Kotlin ] アプリの画面遷移とActivity間のデータ転送

7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?