java - Android:如何禁用 DatePickerFragment 上的 future 日期

标签 java android android-datepicker

我在 android 中使用 DatePickerFragment 创建了一个日期选择器。

下面是我的代码,

@OnClick(R.id.add_info_food_date_edit)
public void setDate() {

    DatePickerFragment datePickerFragment = new DatePickerFragment();
    datePickerFragment.setCallbackListener(new DatePickerFragment.onDatePickerListener() {
        @Override
        public void onDataSet(int year, int month, int day) {

            int currentMonth = 0;

            if (month == 0) {
                currentMonth = 1;
            } else if (month == 1) {
                currentMonth = 2;
            } else if (month == 2) {
                currentMonth = 3;
            } else if (month == 3) {
                currentMonth = 4;
            } else if (month == 4) {
                currentMonth = 5;
            } else if (month == 5) {
                currentMonth = 6;
            } else if (month == 6) {
                currentMonth = 7;
            } else if (month == 7) {
                currentMonth = 8;
            } else if (month == 8) {
                currentMonth = 9;
            } else if (month == 9) {
                currentMonth = 10;
            } else if (month == 10) {
                currentMonth = 11;
            } else if (month == 11) {
                currentMonth = 12;
            } else if (month == 12) {

            }

            dateEditText.setText(day + "/" + currentMonth + "/" + year);
        }
    });

    DialogFragment datePicker = datePickerFragment;

    datePicker.show(getSupportFragmentManager(), "datePicker");
}

现在我想禁用此日期选择器中的 future 日期而不破坏此代码。不过我对这个改变还没有什么好的想法。我怎样才能做到这一点。

有什么想法吗?

最佳答案

将MaxDate设置为当前日期,如下所示

datePicker.getDatePicker().setMaxDate(System.currentTimeMillis());

已更新

DialogFragment newFragment = datePickerFragment;
newFragment.show(getFragmentManager(), "datePicker");
getFragmentManager().executePendingTransactions();     // commits the show method from above
DatePickerDialog dialog = (DatePickerDialog) newFragment.getDialog();
DatePicker datePicker = (DatePicker) dialog.getDatePicker();
Date date = new Date();
datePicker.setMaxDate(date.getTime());

关于java - Android:如何禁用 DatePickerFragment 上的 future 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41823355/

相关文章:

android - Jelly Bean DatePickerDialog --- 有没有办法取消?

java.lang.IllegalStateException : Activity has been destroyed on creating a datepicker dialog

java - 如何将@Value注入(inject)到setter中?

java - 如何隐藏 Android 中现有的文件夹?

android - 如何计算Android中的日期范围 Material 选择器之间的天数

android - 不跟踪 WebView 选项

java - TabLayout改变tabText颜色

java - Java中的JSON解析错误: Unexpected character at position --

java - 防止再次启动启动器 Activity (如果已启动),只需恢复它即可

java - 如何解决-控制台错误日志无法写入Log4j2配置文件