2017-02-08 61 views
0

我只想顯示日期,直到上個月。並且直到今天的日期而不是未來的日期。限於Android的datepicker對話框不工作?如何解決這個問題?

fromDate.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
    final Calendar newCalendar = Calendar.getInstance(); 
    datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() { 
     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
     newCalendar.set(year, monthOfYear, dayOfMonth); 
     datePickerDialog.getDatePicker().setMaxDate(newCalendar.getTimeInMillis() + 1000); 
     datePickerDialog.getDatePicker().setMinDate(newCalendar.getTimeInMillis() - 1000); 
     fromDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year); 
     } 
    }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 
    datePickerDialog.show(); 
    } 
}); 
+0

的http:// stackoverflow.com/questions/33140909/how-to-set-a-minimum-and-maximum-limit-for-a-date-picker-in-android - 這可以幫助嗎? – Vikrant

+0

使用setMinDate()和setMaxDate()來限制日曆。 – nnn

+0

http://stackoverflow.com/a/41391922/4427519 –

回答

0

可以使用的DatePicker的的maxDate和的minDate屬性和同樣的做法可以使用Java Code.You可以參考link瞭解更多信息

1

試試這個,

fromDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
     final Calendar newCalendar = Calendar.getInstance(); 
     datePickerDialog = new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() { 
      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
      newCalendar.set(year, monthOfYear, dayOfMonth); 

      /*Set max date*/ 
      datePickerDialog.getDatePicker().getDatePicker().setMaxDate(new Date().getTime()); 

      // Subtract 1 month from Calendar updated date 
      c.add(Calendar.MONTH, -1); 

      // Set the Calendar new date as minimum date of date picker 
       datePickerDialog.getDatePicker() .getDatePicker().setMinDate(newCalendar.getTimeInMillis()); 

      } 
     }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 
     datePickerDialog.show(); 
     } 
});