複数のFragment間を跨いでデータの受渡しをする方法 | Androidアプリ開発

Android開発において、グローバル変数を簡単に定義することはできず、
複数のFragment間を跨いでデータの受け渡しをするには、
ちょっとしたテクニックが必要です。

この記事では複数のFragment間を跨いでデータの受渡しをする方法を紹介します。
スポンサーリンク

複数のActivity間を跨いでデータを受渡しするときと同じ方法

複数のActivity間を跨いでデータの受渡しをするときと同じ方法を使用することができます。

詳しくは以下の記事にまとめています。 概要を言うと、以下の3通りの方法があります。
  1. Intentにおけるデータ受渡しを利用する
  2. Application継承クラスを作成する
  3. ローカルデータの保存/読込を利用する 
保守性の観点から、
2.のApplication継承クラスを作成する方法を個人的にはオススメします。
スポンサーリンク

Activityオブジェクトを用いてデータを受け渡す

Fragmentを実装している場合にはそれらの方法に加えて、
Activityオブジェクトを利用する方法があります。

まずはActivity側に受渡しをするオブジェクトを生成します。
以下の例ではint型としていますが、オブジェクトのクラスはなんでも大丈夫です。

MainActivity.java
public class MainActivity extends AppCompatActivity {
    public int SharedValue = -1;

    //...

}
次にFragment側でgetActivityでActivityオブジェクトを取得して、件のAcitivtyにキャストします。
そうすれば、受渡しをしたいオブジェクトにアクセスできます。

Fragment1.java
public class Fragment1 extends Fragment {

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_main, container, false);

        MainActivity ma = (MainActivity)getActivity();
        int value = ma.SharedValue;

        return view;
    }
}
スポンサーリンク

まとめ

この記事では、Fragmentを使用したときにActivityオブジェクトを利用してデータを受け渡す方法を紹介しました。

通常はFragmentとActivityは1対1であることが大多数なので問題ないと思いますが、この方法ではFragmentの上位のActivityが固定されてしまうというデメリットがあります

個人的には以下の記事で紹介したApplication継承クラスを利用する方法をオススメします。
Androidアプリ開発
スポンサーリンク
Androidアプリ開発 記事一覧
Androidアプリ開発 記事一覧
Androidアプリ開発の記事一覧を以下にまとめています。
良かったらご覧ください。

Androidアプリ開発 記事一覧
カテゴリ広告: Androidアプリ開発
スポンサーリンク: Androidアプリ開発を個人レッスンで学ぶなら...?
Androidアプリ開発は一人で学んでいても限界があります。
そこでオススメなのがオンラインでAndroidアプリ開発を学べる「コードキャンプ」。
個人レッスンで丁寧に教えてくれます。

無料レッスン体験も可能なので、まずは無料体験から試してみてはいかがでしょうか?

Androidアプリ開発個人レッスン
一般広告: モバイルバッテリー
スポンサーリンク
Aresei-note
タイトルとURLをコピーしました