[Android]ダイアログを表示する。その1。 | 妄想プログラマのらくがき帳

2013年3月18日月曜日

[Android]ダイアログを表示する。その1。

いろんな種類のダイアログの表示方法についてまとめてみました。

・AlertDialog

まずは標準的なダイアログであるAlertDialogです。

// タイトル、メッセージ、ボタンを設定
AlertDialog.Builder builder = new AlertDialog.Builder(this); // ※thisはActivity自身
builder.setTitle("Alert Dialog") // タイトル
        .setMessage("message.") // メッセージ
        // 肯定ボタン
        .setPositiveButton("Yes", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                System.out.println("YesButtoon clicked in alert dialog.");
            }

        })
        // 否定ボタン
        .setNegativeButton("No", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                System.out.println("NoButtoon clicked in alert dialog.");
            }
        })
        // 中立ボタン
        .setNeutralButton("Cancel", new OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                System.out.println("CancelButtoon clicked in alert dialog.");
            }
        });
// ダイアログを表示
builder.show();
AlertDialog.Builderで各設定を行い、AlertDialog.Builder.show()で表示します。
キャプチャ画像を見れば分かりますが、ボタンの並びは左から「否定ボタン」「中立ボタン」「肯定ボタン」になります。
※但し、この並びはAndroidのバージョンで変わる可能性があるので(実際、たしか4.0になった時に否定と肯定の位置が入れ替わってます)、左側ボタンを設定したいからsetNegativeButton()を使うといった実装は止めましょう。


・DatePickerDialog

DatePickerDialogは日付を選択するためのダイアログです。

// 日付が設定されたときのリスナを定義
OnDateSetListener listener = new OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
        System.out.println("picked date => " + year + "/" + monthOfYear + "/" + dayOfMonth);
    }
};

// 初期表示日付を今日に設定してダイアログを表示
Calendar now = Calendar.getInstance();
new DatePickerDialog(this, // ※thisはActivity自身
                        listener,
                        now.get(Calendar.YEAR),
                        now.get(Calendar.MONTH),
                        now.get(Calendar.DATE)).show();
onDateSet()はダイアログで「設定ボタン」が押されたときに呼ばれます。
ダイアログで設定された日付が引数に格納されているので、ここで必要に応じて保存処理等を行います。


・TimePickerDialog

TimePickerDialogは時刻を選択するためのダイアログです。

// 時間が設定されたときのリスナを定義
OnTimeSetListener listener = new OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        System.out.println("picked time => " + hourOfDay + " : " + minute);
    }
};

// 初期表示時間を現時刻に設定してダイアログを表示
Calendar now = Calendar.getInstance();
new TimePickerDialog(this, // ※thisはActivity自身
                        listener,
                        now.get(Calendar.HOUR_OF_DAY),
                        now.get(Calendar.MINUTE),
                        true).show();
基本的にDatePickerDialogと同じです。OnTimeSetListener()はダイアログで「設定ボタン」が押されたときに呼ばれるので、ここで保存処理等を行います。
コンストラクタの5番目の引数is24HourViewは、24時間表記かどうかを指定します。trueにすると24時間表記、falseにすると12時間表記になります。

0 件のコメント:

コメントを投稿