Androidでは、画面(Activity)同士を移動する手段として Intent(インテント)
という仕組みが使われます。
Javaで例えるなら、「別のクラスの処理を呼び出したい」ときに new
や メソッド呼び出し
を使うのに似ています。ですが、Androidではユーザー操作やシステム連携も関わるため、Intent という“メッセージ”で移動指示を出すという考え方になります。
■ Intentとは?
Intent
は、「~をしたい」という“意図”を表現するオブジェクトです。主に以下の2つの使い方があります:
用途 | 内容 | 例 |
---|---|---|
明示的インテント | 特定のActivityを起動する | 画面遷移など |
暗黙的インテント | 特定の機能を持つアプリに処理を委ねる | カメラを起動、メール送信など |
■ 画面遷移(明示的インテント)の基本コード
たとえば、MainActivity
から SecondActivity
に遷移する場合は以下のようになります:
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
ポイント:
Intent
コンストラクタの第1引数は「今のActivityのContext」。- 第2引数は「遷移先のActivityクラス」。
startActivity()
で画面遷移が行われます。
■ データを渡す場合
別のActivityに値を渡したいときは、putExtra()
を使います。
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
intent.putExtra("USERNAME", "taro");
startActivity(intent);
SecondActivity
側で受け取るには:
String username = getIntent().getStringExtra("USERNAME");
これはJavaのメソッド呼び出しの引数に近い感覚です。
■ 画面から戻って値を受け取りたい場合(startActivityForResult)
startActivityForResult()
は非推奨になっており、現在は Activity Result API を使うのが主流です。
■ 暗黙的インテントの例
たとえば、ユーザーが画像を共有したい場合:
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "こんにちは!");
startActivity(Intent.createChooser(intent, "共有方法を選んでください"));
これは「このデータを送る処理ができるアプリをAndroidに探してもらう」というやり方です。
■ Manifestでの宣言
遷移先の SecondActivity
は、AndroidManifest.xml に必ず登録しておきましょう:
<activity android:name=".SecondActivity" />
まとめ:IntentはAndroidにおける「依頼書」
Intentは、単に画面を切り替えるためだけでなく、処理の委譲・他アプリとの連携・ユーザー操作に応じた動的なアクションなど、非常に多くの機能の核になっています。
画面遷移は、Android開発の第一歩。まずは明示的インテントで複数の画面をつなげてみることで、アプリらしい体験が作れるようになります。