我知道这个问题有很多问题,但没有一个解决方案适用于我,所以这个问题。我想限制用户在今天之前选择日期,但我无法这样做。Android DatePickerDialog:设置最小和最大日期选择
public class DatePickerDialogFragment extends DialogFragment {
private OnDateSetListener listener;
public void setListener(OnDateSetListener listener) {
this.listener = listener;
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(getContext(), listener, year, month, day);
dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
return dialog;
}
}
我显示它:
DatePickerDialogFragment fragment = new DatePickerDialogFragment();
fragment.setListener(dateSetListener);
fragment.show(getSupportFragmentManager(), "Choose booking date");
我希望用户不应该能够在今天之前选择的日期。正如你所看到的,我用今天的时间调用setMinDate()
方法,但它没有效果。该对话框显示今天之前的日期变灰,但可以选择。
我也尝试子类DatePickerDialog
并覆盖onDateChanged
建议在一些stackoverflow答案,但没有任何成功。
不聪明完成,但onDateSet,应该比较的最小和最大价值导致 – cuasodayleo
@Abdullah你找到任何工作了这个..? –
@RethinavelPillai我最终做了接受的帖子中提到的内容。 – Abdullah