Remix Posté(e) 21 janvier 2011 Share Posté(e) 21 janvier 2011 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 ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 24 janvier 2011 Share Posté(e) 24 janvier 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remix Posté(e) 26 janvier 2011 Auteur Share Posté(e) 26 janvier 2011 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 :( Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 27 janvier 2011 Share Posté(e) 27 janvier 2011 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Remix Posté(e) 2 février 2011 Auteur Share Posté(e) 2 février 2011 Ça fonctionne comme ça. Merci du conseil :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 3 février 2011 Share Posté(e) 3 février 2011 My pleasure ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.