こんにちは、文系プログラマーいおです!
今回は、Androidでアプリを開発する際に必要になってくる「画面遷移」の方法を分かりやすく解説していきます。
この記事を読めばあなたは画面遷移の仕組みを理解することができ、一緒に実装をしていくことで画面遷移を自由にできるようになります。
画面遷移とは
Androidアプリの多くは、複数の*画面を持っておりそれらを相互に行き来することが可能になっています。この移動を画面遷移と言います。アプリ開発では必須の仕組みです。
*画面のことをもっと広義の意味でアクティビティと呼んだりしますが、ここではわかりやすさを重視し画面と呼ぶことにします。
画面遷移の仕組み
画面遷移には「インテント」という仕組みを使用します。インテントとは、ある一つの画面が別の画面やアプリケーションなどとやり取りをするための仕組みです。インテントを使用することで、ある画面から別の任意の画面を呼び出すことができます。
画面遷移の実装方法
この記事では実装の例として、ボタンをタップしたら画面が遷移されるアプリケーションを作成しようと思います。ぜひ一緒に実装してみてください。
レイアウトファイルの作成
①まずはAndroidStudioで新規プロジェクトを作成する。
②activity_main.xmlにボタンを作成する。以下のコードをactivity_main.xmlに追加する。
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
③File->New->Activity->EmptyActivityを選択して、新しい画面(アクティビティ)を作ります。ここでは「SubActivity」という名前にしました。一緒にレイアウトファイルactivity_sub.xmlを作ります。
④遷移した先の画面がわかりやすいように作成した画面にテキストを表示させます。以下のコードをactivity_sub.xmlに追加する。
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="遷移先画面です"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
これでレイアウトファイルは完成です。
画面遷移の実装
次に画面遷移です。今回の例ではボタンを押したら別の画面に遷移するプログラムを作るので、「ボタンを押したら~」というイベントを実装します。
このイベントを実装するために、MainActivity.javaにイベントリスナーを実装し、ボタンにリスナーを登録します。
①activity_main.xmlのボタンに
android:onClick="button_onclick"
を追加する。
②MainActivity.javaで画面遷移を実装する。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void button_onclick(View view){
//SubActivityへのインテントを作成
Intent i = new Intent(this,SubActivity.class);
//アクティビティを起動する(画面遷移をする)
startActivity(i);
}
}
画面遷移をするためにはまずインテントを作ります。インテントはIntentクラスを実装することで作成できます。onClick()の中に以下のコードを追加してください。
Intent i = new Intent(this, SubActivity.class);
Intentクラスを実装してintentインスタンスを作成しています。その際、Intentクラスのコンストラクタは2つの引数を必要とします。
1つ目は遷移元の画面のクラス、2つ目は遷移先の画面のクラスとなっています。今回の場合は遷移元がこのクラス自身なのでthis、遷移先がSubAcitvity.classとなります。
インテントを作成したら、そのインテントを用いて画面を遷移します。画面を遷移するにはstartActivity()を使います。さきほどのコードの下に以下のコードを追加してください。
startActivity(i);
startActivity()に作成したインテントを渡すことで、別画面のアクティビティが起動し、画面遷移が行われます。
アプリを起動させる
ここまで来たらあとはアプリを起動させていきましょう。ボタンをタッチし以下の画面が表示されたら完成です。
まとめ
今回はAndroidアプリケーションを作る際に必須である「画面遷移」を実装させる方法を説明しました。今後もプログラミング初心者向けの記事を随時投稿していく予定ですので、今後ともよろしくお願いいたします!
最後までお読みいただき、ありがとうございました!