W mojej aplikacji używam selektora dat, aby ustawić datę. Chcę ustawić datę w selektorze dat, maksymalna data to dzisiejsza data według daty systemowej. Nie wiem, jak ustawić maksymalną datę selektora dat na dzisiejszą datę. by rozwiązać ten problem.
Moje kodowanie selektora dat to:
private int pYear;
private int pMonth;
private int pDay;
static final int DATE_DIALOG_ID = 0;
final Calendar c = Calendar.getInstance();
pYear = c.get(Calendar.YEAR);
pMonth = c.get(Calendar.MONTH);
pDay = c.get(Calendar.DAY_OF_MONTH);
// Date picker
public Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
DatePickerDialog.OnDateSetListener pDateSetListener = new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
pYear = year;
pMonth = monthOfYear;
pDay = dayOfMonth;
e_dob.setText(new StringBuilder()
// to set date in editext
.append(pDay).append("/").append(pMonth + 1)
.append("/").append(pYear).append(" "));
}
};
return new DatePickerDialog(this, pDateSetListener, pYear, pMonth,
pDay);
}
return null;
}
android
android-datepicker
Yugesh
źródło
źródło
setMaxDate
of datePickersetMaxDate
jest zawsze podświetlony i zaznaczony, oto obrazUzyskaj dzisiejszą datę (i godzinę) i zastosuj je jako datę maksymalną.
RÓWNIEŻ MOŻEMY TO ZROBIĆ (sprawdź tę odpowiedź Stackoverflow dla metody System.currentTimeMillis () vs Calendar)
źródło
Możesz spróbować zastąpić tę linię:
Przez tych:
źródło
Spróbuj tego
Próbowałem zbyt wielu rozwiązań, ale żadne z nich nie działało. Po zmarnowaniu pół dnia w końcu znalazłem rozwiązanie.
Wyjście: - Wyłącz poprzedni i przyszły kalendarz
źródło
spróbuj tego, powinno działać. Dzięki
źródło
użyj tego kodu bezpośrednio w głównej metodzie, mam nadzieję, że ci pomoże ...
źródło
Sprawdź moje niestandardowe okno dialogowe datepickerdialog
https://github.com/Redman1037/EightFoldsDatePickerDialog
Stosowanie
Skopiuj EightFoldsDatePickerDialog.java do swojego projektu
Wynik
źródło
private void selectDOB () {
źródło
źródło
Oto funkcja rozszerzenia Kotlin:
Stosowanie:
W aktywności:
We fragmentach:
źródło
Możesz utworzyć niestandardowy selektor dat , który działa na wszystkich poziomach interfejsu API.
ustaw maksymalną datę
źródło
rozwiązałem to, wykonując następujące czynności
mam nadzieję, że ci to pomoże
źródło
źródło