2011年5月16日月曜日

[Android]アラートダイアログの使い方

今日はアラートダイアログ(AlertDialog)について書きます。
アラートダイアログというのはこんな感じのポップアップです。
よく処理前の確認とかに使われるポップアップですね。





















~をします
〔OK〕

とかそういう感じに。

使い方は AlertDialog.Builder を生成します。

// アラートダイアログビルダーを生成
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);

AlertDialog.BuilderはAlertDialogの構成を決めるものです。
ここでメッセージやボタンを配置します。

メッセージ
// アラートダイアログのメッセージを設定します
alertDialogBuilder.setMessage("夜の言葉に変換します。");

ボタン
// アラートダイアログのOKがクリックされた時に呼び出される処理を登録
        alertDialogBuilder.setNeutralButton("OK",
          new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                     // 処理
                     Toast.makeText(getApplication(), "OKが押されたよ", Toast.LENGTH_LONG).show();
                    }
                });

ボタンには「Positive」「Neutral」「Negative」の三種類がありますが、
直訳すると「肯定」「中立」「否定」となります。
なにがどうちがうのかは不明ですが、たいして動きも変わらない気がするので
個人的には「OK」のときには「Positive」でNGのときには「Negative」を使ってます。

ダイアログの構成を整えたら、実際にダイアログを生成して表示します。
// アラートダイアログを生成
AlertDialog alertDialog = alertDialogBuilder.create();
        
// アラートダイアログを表示します
alertDialog.show();

案外「.show()」は忘れてしまうので注意しましょう。(Toastと同じですね・・・)

ちなみに一番上の見本のダイアログはこんな感じのコードです。
// アラートダイアログビルダーを生成
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
     
     // アラートダイアログのタイトルを設定します
        alertDialogBuilder.setTitle("夜のアプリ");
        // アラートダイアログのメッセージを設定します
        alertDialogBuilder.setMessage("夜の言葉に変換します。");

        // アラートダイアログのOKがクリックされた時に呼び出される処理を登録
        alertDialogBuilder.setNeutralButton("OK",
          new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                     // 処理
                     Toast.makeText(getApplication(), "OKが押されたよ", Toast.LENGTH_LONG).show();
                    }
                });
        
        // アラートダイアログのNGがクリックされたときに呼び出される処理を登録
        alertDialogBuilder.setNegativeButton("NG",
             new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int which) {
                        // 処理
                        // キャンセルなのでなにもしない
                       }
                   });
           

        // アラートダイアログがキャンセル可能かを登録
        alertDialogBuilder.setCancelable(true);
        
        // アラートダイアログを生成
        AlertDialog alertDialog = alertDialogBuilder.create();
        
        // アラートダイアログを表示します
        alertDialog.show();

タイトルとキャンセルボタンを追加してます。
確認ダイアログっぽいですね。

0 件のコメント:

コメントを投稿