Aller au contenu

TimePicker et intervalle


Remix

Recommended Posts

Posté(e)

Salut à tous,

Je cherche à modifier le comportement du widget TimePicker.

Je souhaiterais qu'un clic sur les boutons "+" ou "-" augmente ou diminue la valeur correspondante de 5 et non de 1 comme c'est le cas par défaut.

Ainsi, si 13h37 est sélectionné, un clic sur le "+" des minutes fait passer l'heure à 13h42.

J'ai eu beau chercher sur Google mais je n'ai rien trouvé d'intéressant :(

Merci d'avance pour vos réponses !

Posté(e)

Bonjour,

Attention, ce que je vais dire je ne l'ai pas essayé ^^ mais :

Peut être peux tu utiliser la méthode des API (vu ici):

public void setOnTimeChangedListener (TimePicker.OnTimeChangedListener onTimeChangedListener)
Since: API Level 1

Celle ci te permet de détecter un changement utilisateur sur le timepicker cela contient une méthode à implémenter toi même (voir ici)

Et sur le onTimeChanged - changement de minute faire :

MonTimePicker.setCurrentMinute (MonTimePicker.getCurrentMinute () + 5);

En espérant que ca aide,

Jok

Posté(e)

Merci pour ta réponse.

Effectivement, la méthode setOnTimeChangedListener est la bonne.

Je ne peux pas savoir si c'est le bouton + ou le bouton - qui a été pressé mais je me suis arrangé en sauvegardant les anciennes valeurs à chaque fois et en les comparant avec les nouvelles (c'est mal expliqué mais ça fonctionne :)).

Il reste cependant un problème, c'est que je n'arrive pas à désactiver les deux EditText, ou du moins à capter qu'une modification manuelle a été apportée.

Donc quand l'utilisateur change l'heure "à la main", ça ajoute aussi l'intervalle :(

Posté(e)

Solution :

Logiquement si l'utilisateur utilise EditText ce n'est pas pour rajouter 1 minute ... enfin ca parait logique.

Donc tu peux faire un truc un peu plus smart

En pseudo code (et sans prendre en compte ta problématique de +/-) :

if(Abs(AfterMinuteTime - BeforeMinuteTime) == 1) {
MonTimePicker.setCurrentMinute (MonTimePicker.getCurrentMinute () + 5);
}

En gros si modification de 1 minutes tu appliques le 5 sinon c'est que c'est du manuel ^^

Jok

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...