Comment obtenir OnClick dans DatePickerDialog.OnDateSetListener?
Je suis en utilisant la méthode suivante pour faire apparaître la boîte de dialogue pour sélectionner la date.
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
dobYear = year;
dobMonth = monthOfYear;
dobDay = dayOfMonth;
if(isEighteenYearOld()){
//display the current date
dateDisplay();
} else{
Toast.makeText(mContext, "You must be 18 year old", Toast.LENGTH_SHORT).show();
}
}
};
Je sais que onDateSet nous pouvons obtenir la date sélectionnée. Mais ce que je suis en train d'essayer si la date choisie est plus jeune que 18 ans, j'en ai besoin pour alerter l'utilisateur. J'ai essayé le code ci-dessus, mais il fermer la boîte de dialogue et retourné à l'activité.
Je veux rester dans la boîte de dialogue jusqu'à ce que l'utilisateur sélectionne la date qui est de 18 ans.Je ne suis pas sûr de la façon d'obtenir de l'événement onclick dans la boîte de dialogue?
OriginalL'auteur vinothp | 2013-02-22
Vous devez vous connecter pour publier un commentaire.
Date de Sélecteur de boîte de Dialogue que Vous utilisez est Déprécier Donc, je vous recommande de ne pas l'utiliser..
Vous pouvez mettre en œuvre le sélecteur de Date de deux façons(que sais-je)
1. À L'Aide De DialogFragment
2. À L'Aide De AlertDialog
Première:
Cochez cette sampel et de mettre en œuvre la même chose dans votre Activité.
Utilisant La Boîte De Dialogue D'Alerte:
En utilisant le second est assez simple
Créer la mise en page de votre res/layout dossier et le lieu DatePicker dans la mise en page
Pas besoin de la traiter séparément, il est livré avec les deux boutons de jeu et d'annuler, Et lorsque vous définissez la date à laquelle Il entrera dans le onDateSet Everyting géré par android
Oui je le sais. Mais ce que je veux c'est que j'ai à valider avant de venir à onDataSet. Comme je l'ai expliqué dans ma question.
Vous obtiendrez la date sélectionnée dans onDateSet.. Là, vous pouvez valider la date, si la date de moins de 18 ans que vous allez afficher un message d'erreur et l'affichage de la date de la boîte de dialogue sélecteur de nouveau son dans votre main
merci oui je peux le faire. mais est-il de toute façon de validation de l'avant de la boîte de dialogue disparaît
OriginalL'auteur Pragnani
Si vous ne souhaitez pas utiliser une implémentation personnalisée de cette boîte de dialogue, vous avez à la sous-classe
DatePickerDialog
pour parvenir à un tel comportement. Vous ne pouvez pas bloquer le dialogue de la clôture juste avecDatePickerDialog.OnDateSetListener
.Malheureusement, les implémentations de la boîte de dialogue varient avec les différentes API de niveaux, donc ce n'est pas trivial pour obtenir le comportement désiré avec le sous-classement. Vous devez ajouter quelques hacks pour le faire fonctionner de manière fiable.
J'ai créé un exemple de mise en œuvre qui bloque la boîte de dialogue de fermeture, sauf si une date est fixée (ou de l'annuler ou le bouton de retour est atteint). Ajuster afin d'afficher votre alerte pour les utilisateurs, le meilleur endroit est la branche else dans
onClick()
méthode.OriginalL'auteur Tomik