【问题标题】:Disable future dates in Android date picker在 Android 日期选择器中禁用未来日期
【发布时间】:2011-05-24 21:09:33
【问题描述】:

大家好: 如何在 Android 的 DatePickerDialog 中禁用未来日期。

我正在使用以下实现。 http://www.androidpeople.com/android-datepicker-dialog-example

谢谢 阿什瓦尼

【问题讨论】:

标签: android datepicker


【解决方案1】:

您应该可以在 DatePickerDialog 上调用 getDatePicker().setMaxDate(long) 将今天设置为您的最大日期。您可以从发布的 sn-p 更新具有相同名称的函数。

请注意,DatePickerDialog 是我在 Android 文档中从我发布的链接中引用的对象。

@Override
protected Dialog onCreateDialog(int id) {
    Calendar c = Calendar.getInstance();
    int cyear = c.get(Calendar.YEAR);
    int cmonth = c.get(Calendar.MONTH);
    int cday = c.get(Calendar.DAY_OF_MONTH);
    switch (id) {
        case DATE_DIALOG_ID:
        //start changes...
        DatePickerDialog dialog = new DatePickerDialog(this, mDateSetListener, cyear, cmonth, cday);
        dialog.getDatePicker().setMaxDate(new Date().getTime());
        return dialog;
        //end changes...
    }
    return null;
}

【讨论】:

  • 谢谢 Nicholas,您能告诉我在哪里可以使用此代码吗?我的意思是我应该把它放在哪个函数中?我指的是我在问题中发布的代码。
  • Nicholas,getDatePicker() 方法在 API 级别 11 中可用,但我的应用程序的目标是 API 7+,有没有办法在 API 级别 7 中做到这一点?
  • 我没有看到快速的方法来做到这一点。也许您将不得不创建自己的 CustomDatePicker。
  • 我在功能中添加了一个检查功能,以便在用户选择未来日期时向他显示祝酒词。 :)
  • 在 API 21 中,我的日期选择器不允许我选择大于本月的日期。今天之后的本月天数显示为灰色。但我仍然可以选择一个灰色的日期...
猜你喜欢
  • 2014-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 2015-06-03
相关资源
最近更新 更多