6

Poursuivant la question posée dans le lien suivant:Comment capturer quand l'heure change dans un TimePicker si le clavier "Soft" est utilisé?

How can I capture when time changes in a TimePicker if the keyboard is being used?

je pourrais résoudre le problème, mais il ne fonctionne que lorsque vous utilisez le clavier réel. Si vous utilisez le clavier logiciel, je n'arrive pas à le faire fonctionner.

Je suis en programmation dans la version 1.6 du framework.

Toute aide sera grandement appréciée. PS: Le fait que j'ai cherché partout la réponse et que je n'ai pas pu la trouver me dit que cela doit être si simple ou très compliqué. Aidez-moi?!

Répondre

0

Voici ce qui a fonctionné pour moi: J'ai découvert que ce problème est seulement un problème selon l'appareil avec lequel vous travaillez. J'ai un Samsung Moment, donc après avoir testé dans d'autres appareils (évidemment pas tous) et des émulateurs, j'ai découvert que cela se passait seulement avec mon téléphone.

Le lien suivant m'a aidé à résoudre mon problème. J'espère que cela vous aide ...

http://blog.xiaad.com/2010/03/android-datepicker-years-before-2000.html

N-Joy!

Simmone

1

J'ai le même problème. Si j'utilise TimePickerDialog, il n'y a pas de problème. Pour utiliser TimePicker dans un DialogPreference, c'est la solution de contournement pire que j'ai jamais fait, en descendant la hiérarchie des vues de la TimePicker:

ViewGroup v = (ViewGroup) timePicker.getChildAt(0); 
ViewGroup numberPicker1 = (ViewGroup) v.getChildAt(0); 
ViewGroup numberPicker2 = (ViewGroup) v.getChildAt(1); 

String hours = ((EditText) numberPicker1.getChildAt(1)).getText().toString(); 
String mins = ((EditText) numberPicker2.getChildAt(1)).getText().toString(); 

String selectedTime = hours+":"+mins; 

De cette façon, je pouvais accéder au texte directement qui a été tapé - mais DEVRAIT être un meilleur moyen de gérer les entrées du clavier ...

+0

Cody ... peut-être est le dispositif. J'ai vérifié avec le G1 et cela fonctionnait bien, mais cela a fonctionné différemment dans mon Samsung Moment. Avez-vous vérifié si le comportement est le même dans d'autres appareils? – monn3t

+0

Non, je n'ai pas, je sais seulement que mon timepicker ne s'est pas comporté comme prévu sur un émulateur. Peut-être avez-vous raison. Quoi qu'il en soit, si cela ne fonctionne pas correctement sur tous les périphériques cibles, il doit y avoir une solution. Vous ne pouvez pas simplement attacher un OnTimeSetListener à un TimePicker, comme pour TimePickerDialog. Il semble que le OnTimeChangedListener s'occupe seulement d'une entrée manuelle, si le EditText respectif perd le focus avant que le bouton OK ne soit cliqué. S'il a toujours le focus en cliquant sur OK, le OnTimeChangedListener ne le remarque pas. – cody

+0

@cody - Juste rencontré ce fil après avoir rencontré ce problème. J'ai mis en place votre solution de contournement et il semble fonctionner parfaitement, mais puisque ce fil est si vieux, avez-vous trouvé un meilleur moyen d'obtenir les temps du TimePicker lors de l'utilisation du clavier logiciel? – dell116

1

En vous reportant au commentaire de Cody, vous devez supprimer le focus du TimePicker lorsque la boîte de dialogue est fermée.

Vous pouvez utiliser, où tp est l'instance TimePicker:

public void onDialogClosed(boolean positiveResult) { 
    tp.clearFocus(); 
+0

Sans rapport, mais quelqu'un d'autre déteste la façon dont le code est formaté dans ces réponses?La sortie rendue ne ressemble généralement pas à la zone d'édition ...