我想在DatePicker中禁用我过去的日期,只显示当前和未来的日期。我正在使用下面的代码,但这也将显示过去的日期,请建议我如何更改代码。
public void SelectDate(View view) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "DatePicker");
}
public void populateSetDate(int year, int month, int day) {
EditDate = (EditText) findViewById(R.id.editDate);
EditDate.setText(day + "/" + month + "/" + year);
}
@SuppressLint("ValidFragment")
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Calendar calendar = Calendar.getInstance();
int yy = calendar.get(Calendar.YEAR);
int mm = calendar.get(Calendar.MONTH);
int dd = calendar.get(Calendar.DAY_OF_MONTH);
return new DatePickerDialog(getActivity(), this, yy, mm, dd);
}
public void onDateSet(DatePicker view, int yy, int mm, int dd) {
populateSetDate(yy, mm + 1, dd);
}
}
答案 0 :(得分:0)
使用DatePicker的setMinDate()
setMaxDate()
种方法。使用当前日期作为setMinDate()
的参数和setMaxDate()
的当前日期+ 10年。
答案 1 :(得分:0)
您可以使用DatePicker
setMinDate()
上设置分钟日期
例如:
datePicker.setMinDate(System.currentTimeMillis() - 1000);
我删除了一秒,因为将最小日期设置为now
可能会产生错误,因为它必须是过去而不是现在