繁体   English   中英

如何在Android的DatePickerDialog中设置当前年份?

[英]How to set current year in DatePickerDialog in Android?

当我的DatePickerDialog显示年份设置为“ 1900”时。 我只知道如何限制过去的日期,但我不知道如何限制过去的日期。 我想发生的事情如下。

恩。 用户想要输入支票/支票日期,我将只允许过去的日期为当前年份。

public void ChequeDate(View view) {
    DatePickerDialog dpd = new DatePickerDialog(PaymentHeader.this,
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                    if (year < mYear)
                        view.updateDate(mYear, mMonth, mDay);

                    if (monthOfYear < mMonth && year == mYear)
                        view.updateDate(mYear, mMonth, mDay);

                    if (dayOfMonth < mDay && year == mYear && monthOfYear == mMonth)
                        view.updateDate(mYear, mMonth, mDay);

                    if (monthOfYear < 9) {
                        if (dayOfMonth < 10) {
                            ChequeDateET.setText(year + "-0"
                                    + (monthOfYear + 1) + "-0" + dayOfMonth);
                        } else {
                            ChequeDateET.setText(year + "-0"
                                    + (monthOfYear + 1) + "-" + dayOfMonth);
                        }
                    } else {
                        if (dayOfMonth < 10) {
                            ChequeDateET.setText(year + "-"
                                    + (monthOfYear + 1) + "-0" + dayOfMonth);
                        } else {
                            ChequeDateET.setText(year + "-"
                                    + (monthOfYear + 1) + "-" + dayOfMonth);
                        }
                    }
                }
            }, mYear, mMonth, mDay);
    //dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    dpd.show();
}

您必须获取current calendar instance并从中获取year, month and date对象作为DatePickerDialog方法中的参数传递并启用setMinDate方法。 现在检查以下代码

public void ChequeDate(View view) {
    Calendar calendar = Calendar.getInstance();
    int date = calendar.get(Calendar.DATE);
    int month = calendar.get(Calendar.MONTH);
    int year = calendar.get(Calendar.YEAR);
    DatePickerDialog dpd = new DatePickerDialog(PaymentHeader.this,
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year,
                                      int monthOfYear, int dayOfMonth) {
                    if (year < mYear)
                        view.updateDate(mYear, mMonth, mDay);

                    if (monthOfYear < mMonth && year == mYear)
                        view.updateDate(mYear, mMonth, mDay);

                    if (dayOfMonth < mDay && year == mYear && monthOfYear == mMonth)
                        view.updateDate(mYear, mMonth, mDay);

                    if (monthOfYear < 9) {
                        if (dayOfMonth < 10) {
                            ChequeDateET.setText(year + "-0"
                                    + (monthOfYear + 1) + "-0" + dayOfMonth);
                        } else {
                            ChequeDateET.setText(year + "-0"
                                    + (monthOfYear + 1) + "-" + dayOfMonth);
                        }
                    } else {
                        if (dayOfMonth < 10) {
                            ChequeDateET.setText(year + "-"
                                    + (monthOfYear + 1) + "-0" + dayOfMonth);
                        } else {
                            ChequeDateET.setText(year + "-"
                                    + (monthOfYear + 1) + "-" + dayOfMonth);
                        }
                    }
                }
            }, year, month, date);
    dpd.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
    dpd.show();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM