我想把日期的限制,以便用户不能选择更多的日期,例如如果今天是1月1日,那么用户应该不能够选择更多然后7日,我的意思是他不能选择1月9日。我也希望他不要选择月份和年份。所以我在限制一个星期内完成他的任务。如何设置Date日期选择器对话框中的日期限制
到目前为止,我所做的是显示日期选取器片段并在其中设置当前日期。在我的主要活动的代码是这样的:
etSelectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePickerFragment = new DatePickerFragment() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Log.d("Date Change", "onDateSet");
Calendar c = Calendar.getInstance();
c.set(year, month, day);
DateFormat df = DateFormat.getDateInstance();
etSelectDate.setText(df.format(c.getTime()));
//nextField.requestFocus(); //moves the focus to something else after dialog is closed
}
};
datePickerFragment.show(MainActivity.this.getSupportFragmentManager(), "datePicker");
}
});
和日期选择器片段类是这样的:
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
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);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
//blah
}
}
直到那时它工作正常,但我不知道如何把极限在日期和其他月份和年份应该是非选择能够。我看到很多链接,如this,但我不明白我该怎么做,也没有什么有用的android网站。
所以,请帮助我,我怎样才能把七天仅
限制更新
通过您的答复,我知道如何设置压延最大日期,所以当我想要在当前日期前7天设置最大日期,我仍然没有得到它。我至今读的方法是:
pickerDialog.getDatePicker().setMaxDate(new Date().getTime());
它设置为当前日期为最大,但我如何添加提前7天它,因为它是Date对象?请帮助
你可以通过完整的线程在这里:HTTP://stackoverflow.com/questions/18272306/set-limit-on-the-datepickerdialog -in-android – strike
检查此https://stackoverflow.com/a/45671497/6478047 – Redman