Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidでアクティビティ起動前にプログレスダイアログを表示する方法

このチュートリアルでは、Androidアプリでアクティビティを起動する前にプログレスダイアログ(進行状況ダイアログ)を表示する方法を、実際のコード例とともにわかりやすく解説します。

実装のポイント

ポイントは AsyncTaskonPreExecute() メソッド内でダイアログを表示することです。onPreExecute() はバックグラウンド処理が始まる直前にメインスレッド上で呼び出されるため、このタイミングで progressDialog.show() を呼び出せば、読み込み中であることをユーザーに伝えられます。

補足: ProgressDialog は API レベル 26 以降で非推奨(Deprecated)となっています。最新のプロジェクトでは ProgressBar や DialogFragment の使用が推奨されますが、本記事では元のサンプルコードのまま解説を進めます。

ステップ1:新しいプロジェクトを作成する

Android Studio を起動し、「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。

ステップ2:res/layout/activity_main.xml にコードを追加する

まず、レイアウトファイルに以下のコードを記述します。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="4dp"
    tools:context=".MainActivity">
    <TextView
        android:layout_marginTop="30dp"
        android:text="Showing Progress dialog before starting the activity in Android.."
        android:textStyle="bold"
        android:textSize="24sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</LinearLayout>

ステップ3:src/MainActivity.java にコードを追加する

次に、MainActivity.java に以下のコードを追加します。ここで ProgressDialog の各種設定を行い、AsyncTask を使ってダイアログの表示を制御します。

import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    ProgressDialog progressDialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Content Loader");
        progressDialog.setProgress(10);
        progressDialog.setMax(100);
        progressDialog.setMessage("Loading...");
        new MyTask().execute();
    }
    public class MyTask extends AsyncTask<Void, Void, Void> {
        public void onPreExecute() {
            progressDialog.show();
        }
        public Void doInBackground(Void... unused) {
            return null;
        }
    }
}

ステップ4:AndroidManifest.xml にコードを追加する

マニフェストファイルには、以下のように MainActivity をランチャーアクティビティとして宣言します。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <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>
    </application>
</manifest>

アプリを実行して動作を確認しよう

それでは、アプリを実行してみましょう。実機のAndroidスマートフォンをパソコンに接続していることを前提としています。Android Studio からアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。デバイス選択画面で自分のモバイル端末を選択すると、端末のデフォルト画面に結果が表示されます。

Androidでアクティビティ起動前にプログレスダイアログを表示する方法

  1. Android WebViewでURL読み込み中にプログレスバーを表示する方法

    このチュートリアルでは、AndroidアプリでWebViewを使用してURLを読み込む際に、ローディング中であることをユーザーに伝えるためのプログレスバーを表示する方法を解説します。ページの読み込みには時間がかかることがあるため、プログレスバーを表示することでユーザー体験を大幅に向上させることができます。手順1:新しいプロジェクトを作成するAndroid Studioを開き、「File」→「New Project」を選択して、必要な情報を入力し、新しいプロジェクトを作成します。手順2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_ma

  2. 【Android開発入門】トースト(Toast)を表示する方法をステップ解説

    Androidでトーストを表示するには?この記事では、Androidアプリでトースト(Toast)を表示する方法を、実際のコード例とともにわかりやすく解説します。トーストとは、画面の下部に短時間だけ表示される小さなポップアップメッセージのことで、ユーザーへの簡単な通知やフィードバックに活用されます。それでは、具体的な手順を見ていきましょう。ステップ1:新規プロジェクトを作成するまず、Android Studioを起動し、メニューから「File」→「New Project」を選択して、必要な情報を入力して新しいプロジェクトを作成します。ステップ2:レイアウトファイルにコードを追加する次に、res