(39) アプリの画面切り替えをアクティビティの変更で実現する。

投稿者: | 2023年3月14日

287 views

この記事は最終更新から 734日 が経過しています。

0. 関連投稿

(39) アプリの画面切り替えをアクティビティの変更で実現する。 ←本投稿
(40) アクティビティ切り替え時にパラメーターを渡す。
(41) アクティビティ終了時にパラメーターを戻す。

1. やりたいこと

Androidアプリの画面切り替えを実現したい。
今回は Activityの変更で画面切り替えを実現してみる。

2. やってみる – 入門編 : ただ画面切り替えするだけ

以下のような単純な画面切り替えを実装する。

(1) MainActivity.java

startActivity で切り替える。

package com.example.testchangescreen;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

public class MainActivity extends AppCompatActivity {

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

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            Intent intent = new Intent(getApplicationContext(), SubActivity.class);
            startActivity(intent);    // ★サブ画面に切り替える。
        }
        return super.onTouchEvent(event);
    }
}

(2) SubActivity.java

finish で自 Activityを終了する。→ 遷移元の画面に戻る。

package com.example.testchangescreen;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

public class SubActivity extends AppCompatActivity {

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

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            finish();    // ★サブ画面を終了する。 → メイン画面が表示される。
        }
        return super.onTouchEvent(event);
    }
}

(3) AndroidManifest.xml

新規に追加したアクティビティについて、AndroidManifest.xml に追記する必要がある。
AndroidStudioのメニューからアクティビティを追加した場合は自動追記されるようだが、自動追記されない場合があったので書いておく。

因みに…
メニューからアクティビティを追加する手順は数の通り。

今回の場合、SubActivityを追加したので、これを追記する。
(今回の場合は自動で追記されていたが…)

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TestChangeScreen"
        tools:targetApi="31">
        <activity
            android:name=".SubActivity"
            android:parentActivityName=".MainActivity"
            android:exported="false">
            <meta-data
                android:name="android.app.lib_name"
                android:value="" />
        </activity>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
 

余談だが、13行目に書いた以下の一文を書いておくと、アプリバーに「←(親画面に戻る)」ボタンが表示されるようになる。

android:parentActivityName=".MainActivity"

こんなボタン(↓)が表示される。

2. やってみる – 応用編 : 画面切り替え時にパラメーターを渡す

次投稿 (40) アクティビティ切り替え時にパラメーターを渡す。 に記す。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)