このページの本文へ

これで作れる! Androidのアプリケーション 第8回

Androidアプリに必要なダイアログを作る

2010年08月20日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

実際にダイアログボックスを作る

 AlertDialogが基本になるわけですが、具体的にダイアログボックスを作るにはどうすればいいでしょうか。AlertDialogクラスには、タイトルなどを設定するメソッドがありますが、通常はAlertDialog.Builderを使います。

 AlertDialog.Builderのメソッドは、機能が追加されており、AlertDialogよりは、ダイアログボックスが作りやすくなっています。なお、現状では、AlertDialog自体が持つメソッドの中には利用を推奨されないものもあるので、できればBuilderを使うようにします。時間があるなら、SDKのリファレンスでAlertDialog(android-sdk-windows以下の、\docs\reference\android\app\AlertDialog.html)とAlertDialog.Builder(同じくandroid-sdk-windows以下の、\docs\reference\android\app\AlertDialog.Builder.html)を比べてみるといいでしょう。

 また、Builderのメソッドは、Bulider自分自身を返すため、メソッドを続けて記述できます(続けずにバラして書いてもOK)。たとえばボタンが2つあり、メッセージを表示するようなダイアログボックス(俗に言うメッセージボックス)は、以下のようなコードで記述できます(行末を表すセミコロンの位置に注意)。

AlertDialog.Builder(AlertDialogSamples.this)
  .setIcon(R.drawable.alert_dialog_icon)
  .setTitle(R.string.alert_dialog_two_buttons_title)
  .setPositiveButton(R.string.alert_dialog_ok, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      //code for OK
    }
  })
  .setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int whichButton) {
      //code for Cancel
    }
  })
  .create();

 Builderのメソッドでは文字列やアイコンなどのリソースは、リソースidを指定するだけでいいため、記述が簡略化されます。また、ボタンの有無は、このコードにあるようにハンドラを設定した「.setXXXButton」メソッドで指定できます。ハンドラの中身は空でもかまいません。表示するメッセージはどうでもかまいませんが、Builderでは「Positive」「Negative」「Neutral」の最大3つのボタンが利用できます。これ以上ボタンを置きたい場合には、ダイアログの表示を定義するViewを作ってsetViewメソッドを使います。

 最後の「create()」でAlertDialogオブジェクトが作られます。Activityの「onCreateDialog」の戻り値は、Dialogオブジェクトになっているので、通常は、このAlertDialogオブジェクトを戻します。

 なお、ダイアログが1つだけの場合、Builderを使ってダイアログを組み立て、最後にshowメソッドを実行させて直接ダイアログを表示させることも可能です。

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン