Remix Posted January 21, 2011 Share Posted January 21, 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 ! Link to comment Share on other sites More sharing options...
jokamax Posted January 24, 2011 Share Posted January 24, 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 Link to comment Share on other sites More sharing options...
Remix Posted January 26, 2011 Author Share Posted January 26, 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 :( Link to comment Share on other sites More sharing options...
jokamax Posted January 27, 2011 Share Posted January 27, 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 Link to comment Share on other sites More sharing options...
Remix Posted February 2, 2011 Author Share Posted February 2, 2011 Ça fonctionne comme ça. Merci du conseil :) Link to comment Share on other sites More sharing options...
jokamax Posted February 3, 2011 Share Posted February 3, 2011 My pleasure ^^ Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.