set selected date to datepicker dialog
10,271
Solution 1
Declare this globally:
Calendar selectedDate = Calendar.getInstance();
Then set your date to the builder and save when user selects the date to selectedDate like below. This is will set current date until user selects a date.
@Override
public void onClick(View v) {
Dialog.Builder builder = null;
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR)+10;
c.set(year, c.get(Calendar.MONTH), c.get(Calendar.DATE));
builder = new DatePickerDialog.Builder(R.style.CustomStyle_DatePicker) {
@Override
public void onPositiveActionClicked(DialogFragment fragment) {
DatePickerDialog dialog = (DatePickerDialog) fragment.getDialog();
String date = dialog.getFormattedDate(SimpleDateFormat.getDateInstance());
selected_date.setText(date);
selectedDate.set(dialog.getYear(),dialog.getMonth(), dialog.getDay());
super.onPositiveActionClicked(fragment);
}
@Override
public void onNegativeActionClicked(DialogFragment fragment) {
super.onNegativeActionClicked(fragment);
}
}.dateRange(System.currentTimeMillis() - 1000, c.getTimeInMillis()).date(selectedDate.get(Calendar.DATE),
selectedDate.get(Calendar.MONTH)
, selectedDate.get(Calendar.YEAR));
builder.positiveAction("OK")
.negativeAction("CANCEL");
DialogFragment fragment = DialogFragment.newInstance(builder);
fragment.show(getFragmentManager(), null);
}
Solution 2
DatePickerDialog datePickerDialog ;
private void initialiseDatePicker(){
final Calendar c = Calendar.getInstance();
int mYear;
int mMonth;
int mDay;
//this is previous set date
String date = dobButton.getText().toString().trim();
//this is previous set date
if (date != null && date.length() > 0) {
//if you have previous set date
String data[] = date.split("-");
mYear = Integer.parseInt(data[2]);
mMonth = Integer.parseInt(data[1]);
mMonth = mMonth - 1;
mDay = Integer.parseInt(data[0]);
} else {
//if you dont have previous set date then display current date
mYear = c.get(Calendar.YEAR);
mYear = mYear;
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
}
int mYear1 = c.get(Calendar.YEAR);
int mMonth1 = c.get(Calendar.MONTH);
int mDay1 = c.get(Calendar.DAY_OF_MONTH);
Calendar maxDate = Calendar.getInstance();
maxDate.set(mYear1, mMonth1, mDay1);
Calendar minDate = Calendar.getInstance();
minDate.set(mYear1 - 150, mMonth1, mDay1);
datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String dateOfBirth1 = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
dobButton.setText(dateOfBirth1);
}
}, mYear, mMonth, mDay);
final DatePicker datePicker = datePickerDialog.getDatePicker();
datePicker.setMinDate(minDate.getTimeInMillis());
datePicker.setMaxDate(maxDate.getTimeInMillis());
datePickerDialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
datePicker.clearFocus();
int year = datePicker.getYear();
int monthOfYear=datePicker.getMonth();
int dayOfMonth = datePicker.getDayOfMonth();
String dateOfBirth1 = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year;
dobButton.setText(dateOfBirth1);
}
});
datePickerDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
dobButton.setText(dateOfBirth);
}
});
}
Author by
meeftah
Updated on July 28, 2022Comments
-
meeftah almost 2 years
after user select the date and reopen datepicker dialog, it set to current date...not the selected date...how do I set to selected date to datepicker after user reopen datepicker dialog, here is my code
@Override public void onClick(View v) { Dialog.Builder builder = null; Calendar c = Calendar.getInstance(); int year = c.get(Calendar.YEAR)+10; c.set(year, c.get(Calendar.MONTH), c.get(Calendar.DATE)); builder = new DatePickerDialog.Builder(R.style.CustomStyle_DatePicker) { @Override public void onPositiveActionClicked(DialogFragment fragment) { DatePickerDialog dialog = (DatePickerDialog) fragment.getDialog(); String date = dialog.getFormattedDate(SimpleDateFormat.getDateInstance()); selected_date.setText(date); super.onPositiveActionClicked(fragment); } @Override public void onNegativeActionClicked(DialogFragment fragment) { super.onNegativeActionClicked(fragment); } }.dateRange(System.currentTimeMillis() - 1000, c.getTimeInMillis()); builder.positiveAction("OK") .negativeAction("CANCEL"); DialogFragment fragment = DialogFragment.newInstance(builder);; fragment.show(getFragmentManager(), null); }
I've search around but I could not get it work, any help?
-
meeftah about 8 yearsif I use this code it will change whole the code that I wrote so far...will you make adjustment so that I can put it in my code?
-
meeftah about 8 yearsthanks...once again, you always help me with my project :)
-
meeftah about 8 yearsand what if I want to set date from edittext to datepicker, not much trouble for you...
-
meeftah about 8 yearsyap...I have a date assign to edittext, now is that possible that I start datepicker from the date that I've set in edittext?...
-
Dhinakaran Thennarasu about 8 yearsofcourse it is possible.I suggest you to create a nnew question with your edittext code and how u assign to datepicker
-
meeftah about 8 yearsplease refer to this link, I've included pictures