【问题标题】:datePickerDialog how to set the shown dates?datePickerDialog 如何设置显示的日期?
【发布时间】:2017-05-09 09:25:01
【问题描述】:

我正在使用DatePickerDialog,如下所示。 我想限制显示的日期,以便用户不能选择今天之后的日期,但可以选择过去的任何日期。我该怎么做?

 final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
            mMissedStampDate = new DateTime().withDate(i, i1, i2);
            textView.setText(mMissedStampDate.toString("yyyy-MM-dd"));
        }
    };

    final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth());

    textView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            datePickerDialog.show();
        }
    });

【问题讨论】:

标签: android


【解决方案1】:

试试

final DatePickerDialog.OnDateSetListener onDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
        mMissedStampDate = new DateTime().withDate(i, i1, i2);
        textView.setText(mMissedStampDate.toString("yyyy-MM-dd"));
    }
};

final DatePickerDialog datePickerDialog = new DatePickerDialog(mActivity, onDateSetListener, mMissedStampDate.getYear(), mMissedStampDate.getMonthOfYear(), mMissedStampDate.getDayOfMonth());

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

textView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        datePickerDialog.show();
    }
});

使用setMinDate & setMaxDate

官方文档: https://developer.android.com/reference/android/widget/DatePicker.html

【讨论】:

    【解决方案2】:
    DatePickerDialog dialog = new DatePickerDialog(this, pDateSetListener, pYear, pMonth, pDay);
    dialog.getDatePicker().setMaxDate(new Date().getTime());
    

    【讨论】:

      【解决方案3】:

      来自DatePickerDialoggetDatePicker() 方法。将max date 设置为current datesetMaxDate()

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多