Android DatePickerDialog: Set min et max date pour la sélection

Je sais qu'il y a beaucoup de question, mais aucune des solutions de travail pour moi, si cette question. Je veux restreindre l'utilisateur à sélectionner une date avant aujourd'hui, mais je ne suis pas en mesure de le faire.

public class DatePickerDialogFragment extends DialogFragment {

    private OnDateSetListener listener;

    public void setListener(OnDateSetListener listener) {
        this.listener = listener;
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        Calendar calendar = Calendar.getInstance();
        int year    = calendar.get(Calendar.YEAR);
        int month   = calendar.get(Calendar.MONTH);
        int day     = calendar.get(Calendar.DAY_OF_MONTH);

        DatePickerDialog dialog = new DatePickerDialog(getContext(), listener, year, month, day);
        dialog.getDatePicker().setMinDate(calendar.getTimeInMillis());
        return dialog;
    }
}

Je suis en train de montrer que c'est l'

DatePickerDialogFragment fragment = new DatePickerDialogFragment();
fragment.setListener(dateSetListener);
fragment.show(getSupportFragmentManager(), "Choose booking date");

Je veux que l'utilisateur ne devrait pas être en mesure de sélectionner la date avant aujourd'hui. Comme vous pouvez le voir, j'ai appelé setMinDate() méthode avec le temps d'aujourd'hui, mais comme aucun effet. La boîte de dialogue affiche les dates avant aujourd'hui comme grisé mais sélectionnable.

J'ai aussi essayé à la sous-classe DatePickerDialog et remplacer onDateChanged comme l'ont proposé certains stackoverflow réponses, mais sans succès.

pas intelligent, complet mais onDateSet, devrait comparer les résultats avec les valeurs min et max
Avez-vous trouver du travail pour que cela..?
J'ai fini par faire ce qui est mentionné dans l'acceptation de poste.
découvrez mycustom datepickerdialog github.com/Redman1037/EightFoldsDatePickerDialog

OriginalL'auteur Abdullah | 2015-10-10