日付選択ダイアログを使う

2011/03/02

日付選択のウィンドウはAlertDialogを継承しています。 DatePickerDialog

よって、Intentのような画面遷移なしで表示が可能です。 コンストラクタは2種類。

DatePickerDialog(Context context, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) DatePickerDialog(Context context, int theme, DatePickerDialog.OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth)

引数int themeに関してはスタイルに関わる事なので勉強する必要がありますが、 ここでレイアウトをカスタマイズする事は頭に入れておく必要がありますね。

[java] DatePickerDialog.OnDateSetListener DateSetListener = new DatePickerDialog.OnDateSetListener(){ public void onDateSet(android.widget.DatePicker datePicker, int year, int monthOfYear, int dayOfMonth) { datetime = String.valueOf(year) + String.format("%02d", monthOfYear + 1) + String.format("%02d", dayOfMonth); Log.d("DatePicker", datetime); } };

            Striing datetime = "20110301";
    int year = Integer.parseInt(datetime.substring(0, 4));
    int monthOfYear = Integer.parseInt(datetime.substring(4, 6)) - 1;
    int dayOfMonth = Integer.parseInt(datetime.substring(6, 8));
    final DatePickerDialog dialog = new DatePickerDialog(this, R.style.Theme_Dialog, DateSetListener, year, monthOfYear, dayOfMonth);  
    dialog.show();

[/java]

日付が設定された場合は、onDateSet リスナーが呼ばれます。