6
votes

Comment limiter l'utilisateur sur DatePicker pour ne peut choisir que la date avant aujourd'hui_date - 18 ans

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)?


1 commentaires

Convertissez la date définie en millis et vérifiez à la date actuelle à Millis. calculer l'intervalle entre deux millis.


3 Réponses :


2
votes

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.


0 commentaires

2
votes

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


0 commentaires

0
votes

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


1 commentaires

S'il vous plaît envisager d'expliquer votre réponse. Les réponses du code seulement sont découragées.