【问题标题】:Open calendar from past day on android在android上打开过去一天的日历
【发布时间】:2016-11-25 15:37:30
【问题描述】:

我正在尝试打开过去几天的日历。例如,今天的日期是 2016 年 11 月 25 日。日历应该从 2016 年 11 月 24 日到 1900 年 1 月 1 日打开,用户可以选择任何过去的日期。这是我的sn-p代码

Calendar calendar = Calendar.getInstance(); fromYear = calendar.get(Calendar.YEAR); fromMonth = calendar.get(Calendar.MONTH); fromDay = calendar.get(Calendar.DAY_OF_MONTH);

注意:日历不应显示当前日期和未来日期。

【问题讨论】:

  • 设置mindate和maxdate。
  • 很简单,你需要设置最小和最大日期!

标签: java android


【解决方案1】:

DatePickerDialog 有方法setMaxDate(Long millis)setMinDate(Long millis)

datePickerDialog.getDatePicker().setMaxDate();

【讨论】:

    【解决方案2】:

    根据需要添加最小和最大日期

    long now = System.currentTimeMillis() - 1000;
    //dp_time.setMinDate(now);
    dp_time.setMaxDate(now-(1000*60*60*24*1));
    

    【讨论】:

      【解决方案3】:

      试试下面的代码

      @NonNull
      @Override
      public Dialog onCreateDialog(Bundle savedInstanceState) {
          Calendar calendar = Calendar.getInstance();
          int year    = calendar.get(Calendar.YEAR);
          int month   = calendar.get(Calendar.MONTH);
          int day     = calendar.get(Calendar.DAY_OF_MONTH);
      
          DatePickerDialog dialog = new DatePickerDialog(getContext(), listener, year, month, day);
          Field mDatePickerField;
          try {
                  mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker");
                  mDatePickerField.setAccessible(true);
          } catch (Exception e) {
                  e.printStackTrace();
          }
          dialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
          return dialog;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-19
        • 2016-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多