Intentを使った画面遷移時に値を渡す方法

Androidアプリ開発

画面遷移する際に、前の画面から次の画面へデータを持っていく方法を知っていますか?

この記事では、Androidの開発でよく使われるIntentを使ったデータの送受信方法について、わかりやすく解説します!コード例と一緒にサクッと学んでいきましょう!

まずはじめに

画面遷移をする際、前の画面から次の画面へデータを渡したい場合は、Intentというクラスを使います。Intentは、画面間で簡単にデータをやり取りするために用意されたAndroidの仕組みです。

画面遷移の仕組みやIntentを使った基本的な画面遷移の方法については、別の記事で詳しく解説していますので、まずはこちらの記事を参考にしてみてください!

\\Intentを使った基本的な画面遷移の方法の解説はコチラ//


Androidの画面遷移でデータを受け渡す方法

画面遷移時にデータを受け渡すためには、IntentというAndroidの仕組みを使います。

Intentを使ったデータの送信と受信の概要

遷移元から遷移先にデータを送るために、putExtra()メソッドを使用し、遷移先ではgetIntent()メソッドを使って受け取ります。

送信側(遷移元)

  • putExtra()メソッドでデータを追加する
  • データはキーと値のペアでセットする

受信側(遷移先)

  • getIntent()メソッドで遷移元のIntentを取得する
  • その後、getStringExtra()などのメソッドでデータを取り出す

具体的なコード例は次のセクションで説明します。

IntentのputExtra()メソッドとは?

putExtra()メソッドは、遷移元から遷移先のActivityにデータを渡すために使われます。キーと値のペアとしてデータをセットし、画面遷移とともに送信します。

  • キー:データを特定するための名前
  • :実際に送信したいデータ

これにより、遷移先のActivityでそのデータをキーに基づいて取得することができます。

IntentのgetIntent()メソッドとは?

getIntent()メソッドは、遷移先のActivityで、遷移元から送られてきたIntentを取得するためのメソッドです。これを使って遷移元で渡されたデータを取得し、使用することができます。

  • 画面遷移時のデータ受け取り:ユーザー情報や設定データを次の画面で使用したい場合に使います。
  • 通知や外部リソースからのデータ受け取り:通知や他のアプリから送られてきたデータを処理する際にも使用します。

Intentから値を取り出すメソッド

遷移元でputExtra()メソッドを使って渡したデータは、遷移先でデータ型に応じたメソッドを使って取得します。これには、以下のようなgetXXXExtra()メソッドが用意されています。

(一例)
・getStringExtra()メソッド:文字列データを取得
・getIntExtra()メソッド:整数データを取得
・getBooleanExtra()メソッド:真偽値データを取得

渡すデータ型に応じて、適切なメソッドを使い分けることが重要です。


画面遷移時に値を渡す実装方法

画面遷移時に値を渡す実装方法について解説します!

前提として、遷移元のActivity(今回の場合:MainActivity)と遷移先のActivity(今回の場合:SubActivity)を用意していること

遷移元

1. Intentオブジェクトを作成
2. Intentに値を設定
3. startActivityメソッドで遷移を実行

遷移先

1. Intentオブジェクトを取得
2. キーを指定してIntentから値を取得

このステップを踏むことでで、遷移元から遷移先にデータを持っていくことができます。次に、具体的なコードを使ってその方法を解説します!


遷移元の処理

1.Intentオブジェクトを作成

まず、画面遷移を行うためにIntentオブジェクトを作成します。

例:MainActivity.java

Intent intent = new Intent(MainActivity.this, SubActivity.class);

\\Intentの引数や詳しい解説はコチラ//

2.Intentに値を設定

次に、遷移先に渡すデータをputExtra()メソッドでIntentに追加します。ここで渡した値が、遷移先の画面で使用されます。

例:MainActivity.java

intent.putExtra("name", "なまえ");
引数クラス概要
第一引数String keyデータに対応するキー(名前)を指定
このキーを使って、遷移先のActivityでデータを取得する
第二引数DataType value渡したいデータを指定
様々なデータ型を渡すことが可能
対応するデータ型

Intentで渡せるデータは、さまざまな型に対応しています。使いたいデータの種類に応じて、適切なデータ型を選びましょう。

  1. 基本データ型
    • putExtra(String key, int value) – 整数を渡す
    • putExtra(String key, boolean value) – 真偽値を渡す
    • putExtra(String key, String value) – 文字列を渡す
  2. 配列データ型
    複数のデータを一度に渡したい場合は、配列を使ってデータをまとめて渡す
    • putExtra(String key, int[] value) – 整数配列
    • putExtra(String key, String[] value) – 文字列配列
  3. オブジェクトデータ型
    複雑なデータを渡したい場合は、ParcelableSerializableインターフェースを実装したオブジェクトも渡す

より詳しい内容は、公式のDevelopersリファレンスをご確認ください//

Intent  |  Android Developers

3.startActivityメソッドで遷移を実行

作成したIntentstartActivity()メソッドで実行し、遷移先のActivityを起動します。

例:MainActivity.java

startActivity(intent);

遷移先の処理

次に遷移元で送ったデータを受け取る処理を遷移先で行います。

1.Intentオブジェクトを取得

遷移元から送られてきたデータは、Intentオブジェクトに含まれています。
まず、getIntentメソッドを使って、そのIntentオブジェクトを取得します。

例:SubActivity.java

Intent intent=getIntent();

2.キーを指定してIntentから値を取得

getIntentメソッドにて取得したIntentから、遷移元でputExtraメソッドを使って送られたデータを取り出します。ここで重要なのは、遷移元で設定したキーを使ってデータを取得することです。

例:SubActivity.java

String name=intent.getStringExtra("name");
データ型に応じたメソッド

putExtraで渡されたデータ型に合わせて、getXXXExtraメソッドを使ってデータを取得します。ここでは、代表的なメソッドを紹介します!

  • 文字列を取得する: getStringExtra("key")
  • 整数を取得する: getIntExtra("key", defaultValue)
  • 真偽値を取得する: getBooleanExtra("key", defaultValue)
  • Serializableオブジェクトを取得するgetSerializableExtra("key")
  • Parcelableオブジェクトを取得するgetParcelableExtra("key")
引数クラス概要
第一引数String keyデータに対応するキー(名前)を指定
このキーを使って、遷移先のActivityでデータを取得する
第二引数
(整数や真偽値の場合)
Class defaultValueキーが見つからなかった場合に返すデフォルト値
データが見つからなかった際に安全に処理を続けるために役立つ

これ以外にもさまざまなgetXXXExtraメソッドが用意されています。用途に応じて使い分けましょう♪

より詳しい内容は、公式のDevelopersリファレンスをご確認ください//

Intent  |  Android Developers

すべての処理をまとめると…

ここまでの流れを簡単にまとめると、以下のコードで画面遷移時にデータの送受信が完了します。

例:MainActivity.java(遷移元)

Intent intent = new Intent(MainActivity.this, SubActivity.class);
        startActivity(intent);

//値を設定する
intent.putExtra("name","なまえ");

startActivity(intent);

例:SubActivity.java(遷移先)

//salesSiteId
Intent intent=getIntent();
String name = intent.getStringExtra("name");

これで、遷移元から遷移先へデータを渡し、遷移先で受け取る一連の処理が完了です♪


まとめ

今回は、Intentを使用して画面遷移時に値を渡して、遷移先で受け取る方法について解説しました!
思ったより簡単だったのではないでしょうか?これを使えば、データの受け渡しがスムーズに行えるので、ぜひ試してみてください♪

今回は少ない値を送る方法でしたが、複数の値をまとめて送るにはどうすればいいのでしょうか?
次の記事でその方法を詳しく解説していますので、ぜひチェックしてみてください!

タイトルとURLをコピーしました