如何在android中禁用datepicker中的未来日期

时间:2017-06-19 17:37:52

标签: android datepicker

我在我的项目中起诉了一个日期选择器,但我不希望未来的日期能够选择: -

我也在链接中使用了答案,

Disable future dates in Android date picker

但它对我不起作用, 我正在使用android studio 2.2.3,而我的api是22。

public void showTruitonDatePickerDialog(View v) {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getFragmentManager(), "datePicker");
}

public 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);

    }

    public void onDateSet(DatePicker view, int year, int month, int day) {

        ddate.setText(day + "/" + (month + 1) + "/" + year);





    }

    }

1 个答案:

答案 0 :(得分:2)

我猜您在代码中添加了“maxDateRange”的示例代码,但没有调用它。只需用以下代码替换上面给出的代码:

public void showTruitonDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getFragmentManager(), "datePicker");
}

public 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
    DatePickerDialog dialog = new DatePickerDialog(getActivity(), mDateSetListener, cyear, cmonth, cday);
    dialog.getDatePicker().setMaxDate(new Date().getTime());
    return dialog;


}

public void onDateSet(DatePicker view, int year, int month, int day) {

    ddate.setText(day + "/" + (month + 1) + "/" + year);





}

} 

希望它能奏效!