Вы можете создать свой собственный класс DatePickerDialog. Затем пропустите необходимую дату в милли-токах при вызове datePicker. setMinDate()
метод отключит предыдущие дни, а салфетки также будут отключены.
DatePickerDialog класс:
public class myDatePickerDialogFragment extends DialogFragment {
int mDay, mMonth, mYear;
long current;
// you also need to pass OnDateSetListener that is implemented in
// activity which is calling this datePicker
OnDateSetListener onSetDate;
public myDatePickerDialogFragment(){
}
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
mDay = args.getInt("day");
mMonth = args.getInt("month");
mYear = args.getInt("year");
current = args.getLong("minDate");
}
public void setOnDateSetListener(OnDateSetListener setDate){
onSetDate = setDate;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), onSetDate, mYear, mMonth, mDay);
// here you set minimum day. User cannot chose earlier dates.
datePickerDialog.getDatePicker().setMinDate(current);
return datePickerDialog;
}
}
Внутри деятельности:
Bundle args = new Bundle();
args.putInt("day", mDay);
args.putInt("month", mMonth);
args.putInt("year", mYear);
args.putLong("minDate", yourCalendarObject.getTimeInMillis());
myDatePickerDialogFragment dialog = new myDatePickerDialogFragment();
dialog.setArguments(args);
dialog.setOnDateSetListener(datePickerListener);
dialog.show(getSupportFragmentManager(), "date");
OnDateSetListener:
DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// do other work after date is set here
}
};
ли мой ответ вам помочь? Если да, подумайте о принятии его – Marat