datePickerDialog如何设置显示的日期?

时间:2017-05-09 09:25:01

标签: android

我正在使用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();
        }
    });

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

$or

答案 2 :(得分:1)

使用DatePickerDialog方法从getDatePicker()开始。将max date设置为current date setMaxDate()

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