2017-08-16 69 views
0

请帮帮我。当我的DatePickerDialog显示年份设置为'1900'时。我只知道如何限制过去的日期,但我不知道如何限制过去的几年。 我想要发生的是如何在Android中设置DatePickerDialog中的当前年份?

ex。用户想要输入检查/检查日期,我只会允许过去的日期到当年。

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(); 
} 

如果您需要说明,请询问。谢谢您的帮助。

回答

0

您必须获得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(); 
} 
相关问题