如何在android中禁用选择过去的日期

时间:2016-10-20 14:40:48

标签: android

  

我想在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);
    }
}

2 个答案:

答案 0 :(得分:0)

使用DatePickersetMinDate() setMaxDate()种方法。使用当前日期作为setMinDate()的参数和setMaxDate()的当前日期+ 10年。

答案 1 :(得分:0)

您可以使用DatePicker

setMinDate()上设置分钟日期

例如:

datePicker.setMinDate(System.currentTimeMillis() - 1000);

我删除了一秒,因为将最小日期设置为now可能会产生错误,因为它必须是过去而不是现在

相关问题