アプリ開発初心者の暇つぶしAndroid体験記

アプリ開発初心者がAndroidアプリ開発始めました。日々学んだことをアウトプットしていきます。

【Android】Intentを使った画面遷移のやり方

今回はAndroidアプリでIntentを使った画面遷移の方法について学んだので
記事にまとめておきます。

Intentとは

Androidでは画面を表示するための部品はアクティビティと呼ばれていますが、
アクティビティから他のアクティビティを呼ぶときにインテントという仕組みを使用します。
この仕組みの中で使われているクラスがIntentになります。
画面間のデータの受け渡しもこのIntentクラスを経由して行うことが出来ます。

画面遷移の実装方法

まずは単純な画面遷移を行うための実装を見ていきます。
遷移元にはボタン1つ配置し、onClickListenerを設定します。

[MainActivity.java]

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.button).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent subIntent = new Intent(getApplication(), SubActivity.class);
        startActivity(subIntent);
    }
}

onClickメソッドの中が今回紹介する仕組み、インテントになります。
Intentクラスをインスタンス化する際、コンストラクタの第二引数に遷移先画面の
アクティビティクラスを指定します。
startActivityメソッドの引数に渡してあげることで画面遷移が行えます。


遷移先のアクティビティクラスも載せておきます。

[SubActivity.java]

public class SubActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);

        findViewById(R.id.button).setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        finish();
    }
}

遷移先のonClickメソッドでは、finishメソッドを呼んでいます。
このメソッドを実行することにより、
当アクティビティが終了し元の画面に戻ります。

忘れがちなManifestファイルへの追加

新しいアクティビティを追加した際に忘れがちになるのが、
AndroidManifest.xmlへの追加です。
このファイルに「このアクティビティがあります!」と
宣言しておかないといけません。
SubActivityの宣言を追加したのがこちらになります。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".SubActivity" />
    </application>
</manifest>

動作確認

それでは実際に動かしてみます。

遷移元の画面がこちらです。
f:id:mtnanao:20200310222031p:plain:w250
ボタンを押すと・・・

f:id:mtnanao:20200310222527p:plain:w250
このようにサブ画面へ遷移しました。
サブ画面でボタンを押せばfinishメソッドが呼ばれて
メイン画面に戻ります。



それでは今回はここまでです!
お疲れさまでした(^_^)/


最後にアプリの宣伝させてください(*^-^*)

play.google.com