Hier ist mein onCreateDialog:

DatePickerDialog dialog = new DatePickerDialog(this, dpickerListener, year_x, month_x, day_x);
        dialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        dialog.getDatePicker().setMaxDate();

Wie Sie sehen können, ist setMaxDate() leer. Ich möchte das maximale Datum von datePickerDialog auf einen Monat nach dem aktuellen Datum festlegen. So erhalte ich das aktuelle Datum:

cal2 = Calendar.getInstance();
    currentDay = cal2.get(Calendar.DAY_OF_MONTH);
    currentMonth = cal2.get(Calendar.MONTH);
    currentYear = cal2.get(Calendar.YEAR);
    currentDate = new Date();
    currentDate.setDate(currentDay);
    currentDate.setMonth(currentMonth);
    currentDate.setYear(currentYear);
2
ASDev 31 Dez. 2015 im 13:56

3 Antworten

Beste Antwort

Verwenden Sie dieses Snippet

Calendar cal=Calendar.getInstance()
cal.add(Calendar.MONTH,1)
long afterTwoMonthsinMilli=cal.getTimeInMillis()
    DatePickerDialog.getDatePicker().setMaxDate(afterTwoMonthsinMilli);

Es liest das aktuelle Systemdatum in ein Kalenderobjekt und fügt dem angegebenen Feld 1 hinzu. In diesem Fall MONTH und gibt ein Kalenderobjekt zurück

Wenn Sie anderen Feldern Werte hinzufügen möchten, geben Sie das Feld im Feldtyp wie folgt an:

  • Calendar.DAY_OF_MONTH
  • Calendar.YEAR
  • Calendar.HOUR

Etc.

2
insomniac 31 Dez. 2015 im 11:39
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis);

Sie können "hinzufügen" verwenden, um Calendar.MONTH hinzuzufügen

2
ASDev 31 Dez. 2015 im 11:34

Sie müssen OnDateChangedListener `new OnDateChangedListener () {überschreiben

            public void onDateChanged(DatePicker view, int year,
                    int month, int day) {
                Calendar newDate = Calendar.getInstance();
                newDate.add(Calendar.MONTH, 1);

                if (calendar.before(newDate)) {
                    view.init(minYear, minMonth, minDay, this);
                }
            }
        });`
0
Ibrahim Gharyali 31 Dez. 2015 im 11:13