Android Studio で画面遷移する方法を知りたい
という方に向けた記事になります。
Androidアプリ開発では画面遷移はよく使用するので、知っておくべきことの一つです。
本記事ではサンプルとして、ボタンを押したら次の画面へ遷移する場合を考えます。ある画面から別の画面へ移動する方法について、Javaを用いた実装を見ていきます。
《Androidアプリ開発を独学で学ぶならこの本》
Android Studioで使用可能な画面遷移
Android Studio で画面遷移を行うには、以下の3つの方法があります。
①Activityから別のActivityへ画面遷移する
②同一Activityで画面遷移する
③Fragmentを使用し、画面表示を任せる
今回は「①Activityから別のActivityへ画面遷移する」やり方を解説します。
Android Studioでの画面遷移(別Activityへの遷移)
あるActivityから別のActivityへ画面遷移したい時は「Intent(インテント)」を使用します。基本構文は以下の通り。
Intent intent = new Intent(MainActivity.this, SubActivity.class); startActivity(intent);
メイン画面からサブ画面へ遷移する場合は以上のように記載します。
メイン画面に戻る際は
finish();
でOKです。
インテントを用いた画面遷移(実装サンプル)
それでは実際に、メイン画面からサブ画面への遷移を実装例として見ていきます。
まず、プロジェクトを作成します。
プロジェクトを作成するとメイン画面(activity_main.xml)とメイン画面の裏の処理(MainActivity.java)が自動生成されます。
《プロジェクトの作成方法は以下の記事を参照ください》
次に、サブ画面(activity_sub.xml)とサブ画面の裏の処理(SubActivity.java)を作成します。作成の際、メインファイルのある上位ディレクトリを右クリックし「New」→「Activity」より.javaを、「New」→「Layout Resource File」より.xmlを作成すると便利です。
最後に、MainActivity.javaにメイン画面からサブ画面への遷移を実装して完了。
メイン画面(activity_main.xml)
遷移元の画面のレイアウトです。中央のボタンを押したらサブ画面へ遷移します。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context=".MainActivity"> <Button style="@android:style/Widget.Material.Light.Button.Toggle" android:id="@+id/seni_button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="@string/seni_sub" /> </LinearLayout>
※ボタンに表示するテキスト(16行目)は、strings.xmlに定義し、それを参照するようにしましょう。
サブ画面(activity_sub.xml)
遷移先の画面のレイアウトです。メイン画面に戻れるよう、こちらもボタンを追加しておきます。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context=".SubActivity"> <TextView android:id="@+id/sub_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/gamen_sub"/> <Button style="@android:style/Widget.Material.Light.Button.Toggle" android:id="@+id/seni_button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:text="@string/seni_main" /> </LinearLayout>
※メイン画面同様に、表示するテキスト(14・22行目)は、strings.xmlに定義し、それを参照するようにしましょう。
メイン画面の裏の処理(MainActivity.java)
サブ画面への遷移ロジックを記載します。ボタンを押した場合の処理の中に、前述した構文を追記しましょう。
package com.example.hyomolution_sample02; 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); //ボタンを押した時 findViewById(R.id.seni_button01).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //インテントの追加(これが遷移用ロジックです) Intent intent = new Intent(MainActivity.this, SubActivity.class); startActivity(intent); } }); } }
サブ画面の裏の処理(QuizActivity.java)
今回はメイン画面からサブ画面への遷移ができることが重要なので、ここは特に書かなくてもOKです。
余裕のある方はサブ画面からメイン画面へ戻る処理も書いてみましょう。
package com.example.hyomolution_sample02; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class SubActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sub); //ボタンを押した時 findViewById(R.id.seni_button01).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //サブ画面を終了する(メイン画面に戻る) finish(); } }); } }
ここまでできたら、実際に動かして、メイン画面からサブ画面へ遷移できることを確認してみましょう。
できない場合は文法が間違えていないか?メイン画面とサブ画面が同一パッケージ内にあるか?等を確認し、修正し再度動作確認をしていきます。
まとめ
Android Studio で画面遷移する方法を解説しました。アプリ開発で画面遷移はよく使用されるので、この機会に覚えていきましょう。
実際に自分で書いてみて、思考錯誤をするのが大事です。最初から上手くいかなくても大丈夫です。
《Androidアプリ開発に本気で取り組みたい方へ》
学ぶ→実際に動かしてみる→オリジナルの処理を追加するというような流れで知識を習得すると近道になるかと思います。
Youtubeで学ぶのもよし。検索エンジンで調べるもよし。書籍で学ぶもよしです。
ただし、Androidアプリ開発は正直難しいです。稼げるのは一部の開発者のみ。それでも頑張りたいんだ!というあなたを応援しています。一緒に頑張りましょう。
書籍で学びたいという方は以下の2つがおすすめ。
①基礎&応用力をしっかり育成!Androidアプリ開発の教科書
②Android Programming: The Big Nerd Ranch Guide
①は、とにかくわかりやすい。初めてアプリ開発を学ぶという方にとって不安なくおすすめできる書籍です。
まずはこれを手に取ってみよう。
②は、英語で書かれている書籍です。それでも私がおすすめする理由は演習・解説の多さにあります。
テキストに沿ってアプリを作成→解説→課題(自分で考える)と進めていく書籍で、エンジニアが成長するための最短ルートになるかなと思います。
まずは続くかどうかを確かめたいんだ!という方は焦らずに無料で入手できる情報でアプリを作成していきましょう!