今回はAlertDialogというダイアログを表示するクラスをご紹介します。
◆ ダイアログを表示する
AlertDialogは、メッセージを表示したり、テキストを入力する際に使用します。以下のサンプルでは、動的にAlertDialogを生成して、メッセージを表示します。
Androidプロジェクトの設定
プロジェクト名: AlertDialogTest1a ビルドターゲット: Android 2.1-update1 アプリケーション名: AlertDialogTest1a パッケージ名: jp.co.triware.samples.AlertDialogTest1a アクティビティーの作成: AlertDialogTest1aActivity 最小SDKバージョン: 7
AlertDialogTest1aActivity.java
package jp.co.triware.samples.AlertDialogTest1a; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; public class AlertDialogTest1aActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnAlert = (Button)findViewById(R.id.alert_btn); btnAlert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder dlg = new AlertDialog.Builder(AlertDialogTest1aActivity.this); // ダイアログのタイトル dlg.setTitle("データ保存"); // タイトル左のアイコン dlg.setIcon(android.R.drawable.ic_dialog_alert); // ダイアログ内のメッセージ dlg.setMessage("データが変更されています。保存しますか?"); // Backボタンでキャンセル可 dlg.setCancelable(true); // ポジティブボタン dlg.setPositiveButton("保存", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "PositiveButton", Toast.LENGTH_SHORT).show(); } }); // ニュートラルボタン dlg.setNeutralButton("破棄", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "NeutralButton", Toast.LENGTH_SHORT).show(); } }); // ネガティブボタン dlg.setNegativeButton("キャンセル", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(getApplicationContext(), "NegativeButton", Toast.LENGTH_SHORT).show(); } }); // キャンセルリスナー dlg.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { Toast.makeText(getApplicationContext(), "CancelListener", Toast.LENGTH_SHORT).show(); } }); // アラートダイアログを表示 dlg.show(); } }); } }ボタンを作るには、AlertDialog.Builderクラスの
・setPositiveButton()
・setNeutralButton()
・setNegativeButton()
の各メソッドを呼び出します。
3つのメソッドすべてを使う必要はなく、ボタンの数や内容にあわせて呼び出します。
メソッドの呼出順に関わらず、ボタンの配置は左から、PositiveButton、NeutralButton、NegativeButtonの並びになります。ボタンが持つ意味とメソッドの名前に関連はありません。
例えば「OK」だけであればどれを使っても構いませんので、どれかひとつを呼び出します。「Yes」「No」「Cancel」という並びでボタンを作る場合は、PositiveButton、NeutralButton、NegativeButtonをそれぞれYes, No, Cancelの処理を実装します。「Yes」「No」であれば、PositiveButtonとNeutralButton、PositiveButtonとNegativeButton、NeutralButtonとNegativeButtonのどの組み合わせでも使えます。それぞれをYes, Noとして使います。「No」「Yes」という並びであれば、例えばPositiveButtonをNo、NegativeButtonをYesとして処理を実装します。
ボタンがないダイアログを作る場合はこれらを呼び出しません。
また、setOnCancelListener()メソッドは、Backボタンが押された時に呼び出される処理を設定します。
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/alert_btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="AlertDialog" /> </LinearLayout>
実行結果
"AlertDialog"のボタンをクリックするとダイアログを表示します。
ダイアログのボタンをクリックすると、各処理(Toast表示)を実行します。
0 件のコメント:
コメントを投稿