バナー画像

スマホアプリをはじめとするアプリケーションでは、ユーザーに入力や選択を求めたり、何らかのメッセージを通知する時があります。Android アプリでは、ダイアログを表示する場合は、DialogFragment クラスを継承したクラスを作成し実装していきます。

この記事では、Android + Java で、ダイアログ画面を実装する方法を解説します。

プロジェクトの作成

Android アプリ開発では、Android Studio が必要です。まだインストールしていない場合は、次の記事でインストール方法を解説していますので、こちらをご覧ください。

【関連記事】
Javaで簡単なAndroidゲームアプリを開発(環境準備)

Android Studio を起動したら、新規プロジェクトの作成から「空のアクティビティ」を選択します。アプリ名(名前)、パッケージ名、保存先には任意の値を設定します。言語には Java を選択します。

ダイアログを表示するクラスを作成

DialogFragment を継承したクラスを作成します。

Java ソースのパッケージ名(今回の例ではcom.example.dialogsample)の上で右クリックを行い、[新規] → [Javaクラス] の順に選択します。

ダイアログのクラス名を入力して、Enter キーを押します。今回はクラス名を MyDialog と入力します。

作成した MyDialog.java を開き、次のように DialogFragment を継承します。

package com.example.dialogsample;
import androidx.fragment.app.DialogFragment;

public class MyDIalog extends DialogFragment {
}

ダイアログの作成と表示

メッセージとOKボタンだけの簡単なダイアログを作成します。

MyDialog.java に、onCreateDialog メソッドを作成します。そして、AlertDialog.Builder クラスを使用してダイアログの定義を行います。

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        builder.setTitle("タイトル")
                .setMessage("ここにメッセージの本文を入れる")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // ボタンを押した時の処理
                    }
                });
        return builder.create();
    }

これでダイアログの実装は完了です。

次は、上で作成したダイアログを表示する処理を作ります。今回は、ボタンがクリックされたタイミングで、ダイアログを表示する処理を書いていきます。

プロジェクトツリーから activity_main.xml 選択します。

次のようにパレットから Button を配置します。

MainActivity.java 開いて、onCreate メソッドで、ボタンがクリックされた時に、上で作成した MyDIalog を表示する処理を書きます。

public class MainActivity extends AppCompatActivity {

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

        Button btn = (Button)findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                MyDIalog dialog = new MyDIalog();
                dialog.show(getSupportFragmentManager(), "my_dialog");
            }
        });
    }
}

ここまでの準備ができたら、アプリを実行して動きを確かめてみましょう。

次のイメージのように「show」ボタンをクリックしたタイミングでダイアログが表示されれば成功です。

ダイアログにボタンを複数表示する

AlertDialog.Builder では最大3つまで、ダイアログにボタンを置くメソッドが用意されており、それぞれのメソッドで配置するボタンには役割が決められています。

1つ目は、上のサンプルコードにもあった setPositiveButton メソッドです。このボタンはメッセージに対する承諾を意味します。つまり YES/NO を問うメッセージであれば YES のボタンを指定します。

2つ目は、setNegativeButton メソッドです。このボタンはメッセージに対する否認を表し、YES/NO を問うメッセージであれば NO のボタンを指定します。

最後の 3つ目は、setNeutralButton メソッドです。このボタンは中立的な役割のボタンで、例えば「キャンセル」や「あとで」など、その時点でメッセージに対する回答を保留するようなボタンを表します。

実際に上の 3つのメソッドを使って、ボタンを 3つ表示するダイアログのサンプルコードを見てみましょう。

    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        builder.setTitle("タイトル")
                .setMessage("ここにメッセージの本文を入れる")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {
                        // ボタンを押した時の処理
                    }
                })
                .setNegativeButton("No", null)
                .setNeutralButton("Cancel", null);
        return builder.create();
    }

これを実行すると、次のような表示になります。

まとめ

今回は、Androidアプリ開発でダイアログを表示する方法を解説しました。

ダイアログの表示は、アプリのジャンルと問わず、多くのシーンで必要とされるため、是非使い方を覚えておきましょう。

この記事のまとめ
  • Androidアプリでは、ダイアログはDialogFragmentを継承したクラスで作る
  • ダイアログはAlertDialog.Builderを使って定義する
  • ダイアログには、3つの役割を持つボタンが配置できる

【関連記事】
電卓アプリのサンプルコード!Java互換のKotlinでAndroidアプリを作る

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。