我希望您能设置日期限制,这样用户就不能选择超过限制的日期。例如,如果今天是1月1日,那么用户就不能选择超过7天的日期,也就是说他不能选择1月9日。我还希望用户不能选择月份和年份。因此,我将限制设置为一周内完成任务。
到目前为止,我已经显示了日期选择器片段并在其中设置了当前日期。我的主要活动中的代码如下:
日期选择器片段类如下所示:
到目前为止,我已经显示了日期选择器片段并在其中设置了当前日期。我的主要活动中的代码如下:
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
}
}
目前它运行良好,但我不知道如何设置日期限制,使得其余的月份和年份都不能被选择。我看到了很多链接,例如像这个,但我不明白该如何做,而且android网站上也没有实用的信息。
所以请帮助我,如何只设置七天的限制?
更新
通过您的回复,我知道如何在日历中设置最大日期,但是我仍然无法实现将最大日期设置为当前日期后的7天。到目前为止,我读到的方法是:
pickerDialog.getDatePicker().setMaxDate(new Date().getTime());
它将当前日期设置为最大值,但是由于它是日期对象,我该如何在其中添加7天呢?请帮忙。