【Android】AlertDialogでダイアログを表示する【Java/Kotlin】

今回はダイアログを表示してみようと思います。

ダイアログはエラー時やユーザに操作をしてほしい際によく使用します。

知っておくと便利です。

ダイアログを表示する

まずダイアログを表示します。(筆者はAcitivtyクラスで記述しています)

// ダイアログを表示する
new AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .create()
    .show();
// ダイアログを表示する
AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .create()
    .show()

setTitle()の説明

setTitleに指定した文字列がAlertDialogのタイトル部分に表示されます。

※ちなみに文字列が3行以上になると強制的に2行になります。(2行目以降は...表示)

setMessage()の説明

setMessageに指定した文字列がAlertDialogのメッセージ部分に表示されます。

show()の説明

showメソッドをコールするとAlertDialogが画面に表示されます。

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

ダイアログが表示できれば次はOKボタンも表示してみましょう

ユーザに処理を続けて良いか受け入れてもらうためにOKボタンを表示します。

// ダイアログを表示する
new AlertDialog.Builder(this)
        .setTitle("タイトル")
        .setMessage("メッセージ")
        .setPositiveButton("OK", (dialog, which) -> {
            // OKボタン押下時に実行したい処理を記述
        })
        .create()
        .show();
// ダイアログを表示する
AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .setPositiveButton("OK") { dialog, which ->
        // OKボタン押下時に実行したい処理を記述
    }
    .create()
    .show()

setPositiveButton()の説明

引数の型説明
第一引数CharSequenceボタンに表示する文字列
第二引数DialogInterface.OnClickListenerボタン押下時に実行する処理

これでOKボタンが表示できましたね!

ダイアログにキャンセルボタンを表示する

続いてはキャンセルボタンも表示しましょう!

ユーザが許可 or 拒否を選択できるようになります。

// ダイアログを表示する
new AlertDialog.Builder(this)
        .setTitle("タイトル")
        .setMessage("メッセージ")
        .setPositiveButton("OK", (dialog, which) -> {
            // OKボタン押下時に実行したい処理を記述
        })
        .setNegativeButton("キャンセル", (dialog, which) -> {
            // キャンセルボタン押下時に実行したい処理を記述
        })
        .create()
        .show();
// ダイアログを表示する
AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .setPositiveButton("OK") { dialog, which ->
        // OKボタン押下時に実行したい処理を記述
    }
    .setNegativeButton("キャンセル") { dialog, which ->
        // キャンセルボタン押下時に実行したい処理を記述
    }
    .create()
    .show()

setNegativeButton()の説明

引数の型説明
第一引数CharSequenceボタンに表示する文字列
第二引数DialogInterface.OnClickListenerボタン押下時に実行する処理

ダイアログにまた後でボタンを表示する

ユーザに許可 or 拒否が選択できるようになりましたが

許可も拒否も選択したくない場合があります。

そういう場合はまた後でボタンを表示して回避しましょう!

// ダイアログを表示する
new AlertDialog.Builder(this)
        .setTitle("タイトル")
        .setMessage("メッセージ")
        .setPositiveButton("OK", (dialog, which) -> {
            // OKボタン押下時に実行したい処理を記述
        })
        .setNegativeButton("キャンセル", (dialog, which) -> {
            // キャンセルボタン押下時に実行したい処理を記述
        })
        .setNeutralButton("また後で", (dialog, which) -> {
            // また後でボタン押下時に実行したい処理を記述
        })
        .create()
        .show();
// ダイアログを表示する
AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .setPositiveButton("OK") { dialog, which ->
        // OKボタン押下時に実行したい処理を記述
    }
    .setNegativeButton("キャンセル") { dialog, which ->
        // キャンセルボタン押下時に実行したい処理を記述
    }
    .setNeutralButton("また後で") { dialog, which ->
        // また後でボタン押下時に実行したい処理を記述
    }
    .create()
    .show()

setNeutralButton()の説明

引数の型説明
第一引数CharSequenceボタンに表示する文字列
第二引数DialogInterface.OnClickListenerボタン押下時に実行する処理

ダイアログ外タップ、バックキーでダイアログを閉じないようにする

AlertDialogはデフォルトでダイアログ外タップ、バックキーでが閉じてしまいます。

アプリの仕様によって閉じたくない場合は下記の処理を記述します。

// ダイアログを表示する
new AlertDialog.Builder(this)
        .setTitle("タイトル")
        .setMessage("メッセージ")
        .setPositiveButton("OK", (dialog, which) -> {
            // OKボタン押下時に実行したい処理を記述
        })
        .setCancelable(false)  <- ダイアログ外タップ、バックキーでダイアログを閉じないようにする
        .create()
        .show();
    }
// ダイアログを表示する
AlertDialog.Builder(this)
    .setTitle("タイトル")
    .setMessage("メッセージ")
    .setPositiveButton("OK") { dialog, which ->
        // OKボタン押下時に実行したい処理を記述
    }
    .setCancelable(false)
    .create()
    .show()

setCancelable()の説明

引数型説明
第一引数Booleanfalseにするとダイアログ外タップ、バックキーでダイアログを閉じないようになる

最後に

いかがでしたでしょうか

AlertDialogでダイアログが表示できるようになります。

それでは!

コメント

  1. […] 前回は、AlertDialogを表示する事を実施しました。 […]

タイトルとURLをコピーしました