Kotlinで画面遷移を実装しよう!初心者でもわかるIntentの使い方完全ガイド
生徒
「KotlinでAndroidアプリを作ってるんですが、ボタンを押したら別の画面に移動させたいんです!」
先生
「それならIntent(インテント)という仕組みを使うと、簡単に画面遷移ができますよ。」
生徒
「インテントって何ですか?あまり聞き慣れない言葉で不安です……」
先生
「心配しなくても大丈夫。インテントの使い方を初心者向けに、ゆっくり丁寧に説明していきましょう!」
1. Intentとは?
Intent(インテント)は、Androidアプリで「◯◯したい!」という意図を伝える道具のことです。
たとえば、画面を切り替えたいときや、写真を撮るアプリを呼び出したいときに使います。
今回の記事では、ボタンを押すと画面を遷移(せんい=画面を切り替えること)する方法にしぼって解説します。
2. 画面遷移の仕組みを図でイメージしよう
画面A(MainActivity)から、画面B(SecondActivity)に移動する流れは次の通りです:
- ユーザーがボタンを押す
- KotlinでIntentを使って、移動先の画面を指定する
- 画面Bが起動して、表示される
3. MainActivityのレイアウトを作ろう
まずは、最初の画面(MainActivity)のボタンをレイアウトXMLに書きます。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<Button
android:id="@+id/buttonMove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="次の画面へ" />
</LinearLayout>
4. KotlinでIntentを使って画面を切り替える
次に、MainActivity.ktファイルでボタンを押したときの処理を書きます。
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.buttonMove)
button.setOnClickListener {
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)
}
}
}
5. SecondActivityを作成しよう
遷移先となるSecondActivityも用意します。まずはレイアウトXMLです。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="これは2つ目の画面です"
android:textSize="20sp" />
</LinearLayout>
次に、Kotlinファイルで画面内容を定義します。
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
}
}
6. AndroidManifest.xmlに画面を登録する
新しく作ったSecondActivityをAndroidシステムに知らせるため、AndroidManifest.xmlに追記します。
<application
... >
<activity android:name=".SecondActivity" />
</application>
7. 実行結果を見てみよう
アプリを起動して「次の画面へ」ボタンを押すと、以下のように2つ目の画面が表示されます。
これは2つ目の画面です
8. Intentの中身をもう少し理解しよう
Intent(this, SecondActivity::class.java)という部分は、「この画面(this)から、SecondActivityに移動します」という意味です。
startActivity(intent)で、その意図(インテント)を実行します。
9. よくあるエラーと対処法
- SecondActivityをManifestに登録し忘れた:アプリが起動中にクラッシュするので注意。
- 画面ファイル(layout)の指定ミス:
R.layout.〇〇が正しく設定されているか確認しましょう。 - Activity名のスペルミス:大文字・小文字の違いにも気をつけてください。
10. Androidアプリ開発でIntentは必須テクニック
Kotlinで画面遷移を実装するには、Intentの使い方をしっかりマスターすることが大切です。画面が1つだけのアプリは少なく、ほとんどのアプリが複数画面で構成されています。
Intentは、そんな複数画面をつなぐ“橋渡し役”です。初心者でもこの基本を押さえておけば、自信を持ってアプリ開発を進められますよ。