Android 在DatePicker中禁用刷到上一个月

Android 在DatePicker中禁用刷到上一个月,android,datepicker,android-datepicker,Android,Datepicker,Android Datepicker,在过去的一个月里,他们是否有办法禁用日期选择器 我发现了这个,然后。但它似乎不会禁用刷卡/返回到上个月 原因:在当前/未来设置任务 您可以创建自己的DatePickerDialog类。然后在调用datePicker时以毫电流形式传递必要的日期setMinDate()方法将禁用前几天,并且也将禁用刷卡 DatePickerDialog类: public class myDatePickerDialogFragment extends DialogFragment { int mDay,

在过去的一个月里,他们是否有办法禁用日期选择器

我发现了这个,然后。但它似乎不会禁用刷卡/返回到上个月


原因:在当前/未来设置任务

您可以创建自己的DatePickerDialog类。然后在调用datePicker时以毫电流形式传递必要的日期
setMinDate()
方法将禁用前几天,并且也将禁用刷卡

DatePickerDialog类:

public class myDatePickerDialogFragment extends DialogFragment {

    int mDay, mMonth, mYear;
    long current;

    // you also need to pass OnDateSetListener that is implemented in
    // activity which is calling this datePicker
    OnDateSetListener onSetDate;

    public myDatePickerDialogFragment(){
    }

    @Override
    public void setArguments(Bundle args) {
        super.setArguments(args);
        mDay = args.getInt("day");
        mMonth = args.getInt("month");
        mYear = args.getInt("year");
        current = args.getLong("minDate");
    }

    public void setOnDateSetListener(OnDateSetListener setDate){
        onSetDate = setDate;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), onSetDate, mYear, mMonth, mDay);

        // here you set minimum day. User cannot chose earlier dates.
        datePickerDialog.getDatePicker().setMinDate(current);

        return datePickerDialog;
    }
}
活动内部:

Bundle args = new Bundle();
args.putInt("day", mDay);
args.putInt("month", mMonth);
args.putInt("year", mYear);
args.putLong("minDate", yourCalendarObject.getTimeInMillis());

myDatePickerDialogFragment dialog = new myDatePickerDialogFragment();
dialog.setArguments(args);
dialog.setOnDateSetListener(datePickerListener);
dialog.show(getSupportFragmentManager(), "date");
OnDateSetListener:

DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {

        // do other work after date is set here

    }
};

@你试过我的解决方案吗?我的答案对你有帮助吗?如果是的话,考虑接受它。