I have two edit text boxes one for check in and another for check out date.
I have taken two DatePickerDialog for that, which will open when you click on the edit text boxes, this is working well however I need it to set up so when a date is picked for check in edit text box then for check out datepicker should start from the next day of check in date..
i.e your check out date can not be before your check in date.
my current code:
private void setDateTimeField() {
checkInEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
fromDatePickerDialog.show();
}
}
});
checkOutEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
toDatePickerDialog.show();
}
}
});
Calendar newCalendar = Calendar.getInstance();
fromDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
checkInEdit.setText(dayOfMonth + "-" + monthOfYear + "-" + year);
newDate.add(Calendar.DATE, 1);
toDatePickerDialog.getDatePicker().setMinDate(newDate.get(Calendar.MILLISECOND));
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
toDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
checkOutEdit.setText(dayOfMonth + "-" + monthOfYear + "-" + year);
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
fromDatePickerDialog.getDatePicker().setMinDate(newCalendar.get(Calendar.MILLISECOND));
toDatePickerDialog.getDatePicker().setMinDate(newCalendar.get(Calendar.MILLISECOND));
}
I have added the line
toDatePickerDialog.getDatePicker().setMinDate(newDate.get(Calendar.MILLISECOND));
in the fromDatePickerDialog
onDateSet method, however this doesnt seem to stick, i.e when I open the toDatePickerDialog its date is still set to today.