Androidアプリ開発者のためのTips集。Androidアプリケーションでは、AlertDialogクラスを使用することで、“ダイアログボックス”を表示できる。今回のTipsでは、基本的なダイアログ表示からOK/キャンセルダイアログの表示方法までを紹介する。
用途 | 基本 |
---|---|
カテゴリ | 画面制御 |
レベル | 初級 |
動作確認環境 | Android 2.3.3(GingerBread) エミュレータにて動作確認 |
備考 | 今回のTipsは上記環境で動作確認・検証を行っています |
Androidアプリケーションにも、「ダイアログボックス」が用意されている。AlertDialogクラスを使用することで、ダイアログボックスを表示することが可能だ。
AlertDialogのインスタンスを直接作成することはできないため、AlertDialog.Builderクラスを使用して、AlertDialogを作成することになる。
public AlertDialog.Builder Builder(Context context)
public AlertDialog.Builder setTitle (CharSequence title) public AlertDialog.Builder setMessage (CharSequence message) public AlertDialog create()
AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("空のダイアログ"); builder.setMessage("Hello Android Tips"); AlertDialog dialog = builder.create(); dialog.show();
まずは、AlertDialog.Builderを作成する。コンストラクタの第1引数Contextには、ダイアログを利用する画面のActivityを用いるのが一般的である。
作成したAlertDialog.BuilderのsetTitle()、setMessage()メソッドでダイアログのタイトルと表示メッセージを設定して、create()メソッドでAlertDialogインスタンスを作成する。
作成したAlertDialogのshew()メソッドを実行すると、ダイアログが表示される。
前項のダイアログはボタンのないシンプルなダイアログだったが、[OK]ボタン、[キャンセル]ボタンを持ったダイアログも作成可能である。
AlertDialogには、肯定・否定・中立の3種類のボタンがあらかじめ用意されており、これらを任意で使用できる。
ボタンを使用する場合、AlertDialog.Builderの以下のメソッドを使用する。
public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener) public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener) public AlertDialog.Builder setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
第1引数にはボタンに表示するテキストを指定する。第2引数にはボタンクリック時の処理を実装したDialogInterface.OnClickListenerを指定する。
// OKダイアログ // public void dialog1(Context context){ AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("OK ダイアログ"); builder.setMessage("Hello Android Tips"); builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(DialogTestActivity.this, "Click OK button", Toast.LENGTH_SHORT).show(); } } ); AlertDialog dialog = builder.create(); dialog.show(); }
また、複数のボタンを組み合わせて使用することも可能だ。
// OK/Cancel ダイアログ // public void dialog2(){ AlertDialog.Builder builder = new AlertDialog.Builder(this); String[] items = {"item 0","item 1","item 2","item 3"}; builder.setTitle("OK/Cancel ダイアログ"); builder.setMessage("Hello Android Tips"); builder.setSingleChoiceItems(items, 0, mItemListener); builder.setPositiveButton("Yes", mButtonListener ); builder.setNeutralButton("Cancel", mButtonListener ); builder.setNegativeButton("No", mButtonListener ); AlertDialog dialog = builder.create(); dialog.show(); } // ボタンのリスナー // DialogInterface.OnClickListener mButtonListener = new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String btnStr = ""; switch( which ){ case AlertDialog.BUTTON_POSITIVE: btnStr = "Yes"; break; case AlertDialog.BUTTON_NEUTRAL: btnStr = "Cancel"; break; case AlertDialog.BUTTON_NEGATIVE: btnStr = "No"; break; } Toast.makeText(DialogTestActivity.this, btnStr + " button clicked.", Toast.LENGTH_SHORT).show(); } };
≫連載「Androidアプリケーション開発者のためのTips集」の目次
Copyright © ITmedia, Inc. All Rights Reserved.