Comment limiter SAYPICKER pour ne pas choisir la date à l'avenir. J'ai systémark dans une activité qui est utilisée pour l'enregistrement. Que faire, l'utilisateur ne peut pas choisir la date d'anniversaire si l'utilisateur a moins de 18 ans (par exemple, ne peut pas choisir la date après aujourd'hui_date - 18 ans)? P>
3 Réponses :
Vous n'avez pas mentionné le niveau API. Sur nid d'abeille et plus tard, datePicker a des méthodes SetMin / MAXDate que vous pouvez utiliser pour restreindre la plage autorisée. P>
J'espère que vous avez eu la réponse jusqu'à maintenant. Le suivant pourrait être utile aux autres aussi: Si vous souhaitez désactiver l'utilisateur de choisir une date 18 ans après aujourd'hui, voici ce que vous pouvez faire.
Get Time de 1-janvier-1970 à 18 ans à partir de maintenant (en milli secondes) p>
datepicker2.setMaxDate(time);
compter l'année précédente à partir de maintenant (année en cours) par INT Minyear = CourantyAear - 18; Puis fixez cette date avec (mois min, mois en cours, jour en cours) comme limite maximale du sélecteur de date.
private static void setMaxLimitInDatePicker(DatePickerDialog datePickerDialog) { final Calendar calendar = Calendar.getInstance(); int currentYear = calendar.get(Calendar.YEAR); int currentMonth = calendar.get(Calendar.MONTH); int currentDay = calendar.get(Calendar.DAY_OF_MONTH); int minYear = currentYear - 18; int minMonth = currentMonth; int minDay = currentDay; calendar.set(minYear, minMonth, minDay); long minDateInMilliSeconds = calendar.getTimeInMillis(); // Set 18 years from today as max limit of date picker datePickerDialog.getDatePicker().setMaxDate(minDateInMilliSeconds); }
S'il vous plaît envisager d'expliquer votre réponse. Les réponses du code seulement sont découragées.
Convertissez la date définie en millis et vérifiez à la date actuelle à Millis. calculer l'intervalle entre deux millis.