Good day everyone! I am building a hotel booking application on android, my problem is when I select a date in the check-in editext via datepicker, the month in check out reservation shows the next month in the datepicker. How can I resolve this problem? Thank you. Here is my line of code for date picker.
etin = (EditText) findViewById(R.id.etcheckin);
etin.setInputType(InputType.TYPE_NULL);
etout = (EditText) findViewById(R.id.etcheckout);
etout.setInputType(InputType.TYPE_NULL);
etin.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
showTruitonDatePickerDialog(view);
}
});
etout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showToDatePickerDialog(view);
}
});
}
public void showTruitonDatePickerDialog(View v){
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
public void showToDatePickerDialog(View v){
DialogFragment newFragment = new ToDatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
public Dialog onCreateDialog(Bundle savedInstanceState){
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.Theme_AppCompat_DayNight_Dialog_Alert, this, year, month, day);
datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis());
c.set(2018,11 ,31);
datePickerDialog.getDatePicker().setMaxDate(c.getTimeInMillis());
return datePickerDialog;
}
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, 0, 0, 0);
int mont = month + 1;
etin.setText(mont + "/" + day+ "/" + year);
// etin.setText((etin.getmonth + 1) + );
}
}
public static class ToDatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
// Calendar startDateCalendar=Calendar.getInstance();
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
String getfromdate = etin.getText().toString();
String getfrom[] = getfromdate.split("/");
int year,month,day;
year= Integer.parseInt(getfrom[2]);
month = Integer.parseInt(getfrom[0]);
day = Integer.parseInt(getfrom[1]);
final Calendar c = Calendar.getInstance();
c.set(year, month, day + 1);
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), R.style.Theme_AppCompat_DayNight_Dialog_Alert, this, year, month, day);
datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis());
c.set(2018,11, 31);
datePickerDialog.getDatePicker().setMaxDate(c.getTimeInMillis());
return datePickerDialog;
}
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day, 0, 0, 0);
etout.setText(month + "/" + day + "/" + year);
}
}