Android application development 第5章:Intentと画面遷移の基本

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開発の第一歩。まずは明示的インテントで複数の画面をつなげてみることで、アプリらしい体験が作れるようになります。

mh

Related Posts

Android application development 第33章:実践ミニアプリ:天気情報アプリ

Android application development 第32章:実践ミニアプリ:シンプルなToDoリスト

You Missed

Kubernetes Learning 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

  • 投稿者 mh
  • 6月 24, 2025
  • 88 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第13章:ストレージとデータベースの基礎 : オブジェクトストレージ: Cloud Storage(バケット、オブジェクト、ストレージクラス)- あなたの「データ置き場」

  • 投稿者 mh
  • 6月 23, 2025
  • 101 views

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

  • 投稿者 mh
  • 6月 21, 2025
  • 102 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第12章:Cloud CDN(Content Delivery Network):あなたのWebサイトを「世界中のユーザーに超高速で届ける宅配便ネットワーク」

  • 投稿者 mh
  • 6月 20, 2025
  • 119 views

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 112 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 124 views