There are two datepickerdialogs. The selected date in the first should be the minimum date in the second. Made it so

private void setInitialDateTime(TextView textView) { textView.setText(DateUtils.formatDateTime(getActivity(), dateAndTime.getTimeInMillis(), DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR )); } // установка обработчика выбора даты DatePickerDialog.OnDateSetListener fD=new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { dateAndTime.set(Calendar.YEAR, year); dateAndTime.set(Calendar.MONTH, monthOfYear); dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth); setInitialDateTime(finishDate); } }; DatePickerDialog.OnDateSetListener bD=new DatePickerDialog.OnDateSetListener() { public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { dateAndTime.set(Calendar.YEAR, year); dateAndTime.set(Calendar.MONTH, monthOfYear); dateAndTime.set(Calendar.DAY_OF_MONTH, dayOfMonth); finishPicker.getDatePicker().setMinDate(dateAndTime.getTimeInMillis()); setInitialDateTime(beginDate); } }; // отображаем диалоговое окно для выбора даты public void setDate(DatePickerDialog.OnDateSetListener dialog) { beginPicker.getDatePicker().updateDate(dateAndTime.get(Calendar.YEAR), dateAndTime.get(Calendar.MONTH),dateAndTime.get(Calendar.DAY_OF_MONTH)); beginPicker.show(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view =inflater.inflate(R.layout.fragment_period, container, false); beginDate= (TextView) view.findViewById(R.id.beginDate ); finishDate= (TextView) view.findViewById(R.id.finishDate); beginDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { setDate(bD); } }); finishDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finishPicker.show(); } }); viewPager = (ViewPager) view.findViewById(R.id.viewpagerDetalization); setupViewPager(viewPager); tabLayout = (TabLayout) view.findViewById(R.id.tabsDetalization); tabLayout.setupWithViewPager(viewPager); beginPicker=new DatePickerDialog(getContext(),bD,dateAndTime.get(Calendar.YEAR), dateAndTime.get(Calendar.MONTH), dateAndTime.get(Calendar.DAY_OF_MONTH)); finishPicker=new DatePickerDialog(getContext(),fD,dateAndTime.get(Calendar.YEAR), dateAndTime.get(Calendar.MONTH), dateAndTime.get(Calendar.DAY_OF_MONTH)); beginPicker.getDatePicker().setMaxDate(dateAndTime.getTimeInMillis()); setInitialDateTime(beginDate); setInitialDateTime(finishDate); return view; } 

But now there was a problem. If I re-select the new date on the first DatePickerDialog, then the second minimum does not change

first datepicker

enter image description here

second datepicker

enter image description here

again first datepicker

enter image description here

Again the second datepicker

enter image description here

    1 answer 1

    In the onDataSet () handler, memorize the selected date and expose setMinDate () to the second picker in the same place