【Android】DatePickerDialogを使って日付を選択する

 

 


カレンダーダイアログから指定の日付を選択。
選択した日付を文字列として表示する。

 

上記のようなケースの場合にDatePickerDialogが役に立つと思います。

 

 

 

 

 

 

 


今回は、指定の期間のみ選択可能とします。

 

 

 

 

 

 

 


まず、Dialogの表示。

 


DatePickerDialog dialog = new DatePickerDialog(getActivity(), R.style.Theme, listener, 2018, 04, 27);

 

 

 

 

第一引数はContext。今回はDialogFragmentを継承したクラスの為、getActivity()です。

第二引数はカレンダーダイアログのテーマ(レイアウト部分)を設定します。

第三引数は設定した結果を表示するActivityを設定します。

第四引数・第五引数・第六引数はカレンダーダイアログを起動させたときにカーソルが当たっている日付をそれぞれ年月日の順に設定します。

 

 

 

 

 

 

 

 

 


次に、指定期間の設定。

 


GregorianCalendar maxDate = new GregorianCalendar();
GregorianCalendar minDate = new GregorianCalendar();


// 上限値を設定.
maxDate.set(2018, 03, 27)

// 下限値を設定.
minDate.set(2018, 05, 27)

 

// DatePickerに設定.
DatePicker datePicker = dialog.getDatePicker();
datePicker.setMaxDate(maxDate);
datePicker.setMinDate(minDate);

 

 

 

 

 

上記を設定することで、
『2018/03/27~2018/05/27』の期間のみ設定可能となります。

 

 

 

 

 

 

 

 

 

最後に、ダイアログのListenerを設定。

 


dialog.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialogInterface) {
Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
positiveButton.setText("設定する");
Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
negativeButton.setText("戻る");
}
});

 

 

 

 

 

 

 

今回は「設定する」ボタンと「戻る」ボタンを
ダイアログに設定しています。

 

 

 

 

 

 

 


設定した日付を取得する側はまた今度。

以上。