6

mit der Frage in dem folgenden Link bezeichnet Fortsetzung:Wie kann ich erfassen, wenn sich die Zeit in einem TimePicker ändert, wenn die "Soft" Tastatur verwendet wird?

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

ich das Problem lösen könnte, aber es funktioniert nur, wenn Sie die tatsächliche Tastatur verwenden. Wenn Sie die Soft-Tastatur verwenden, kann ich sie nicht zum Laufen bringen.

Ich programmiere in Version 1.6 des Frameworks.

Jede Hilfe wird sehr geschätzt.

PS: Die Tatsache, dass ich überall nach der Antwort suche und es nicht finden konnte, sagt mir, dass das so einfach oder sehr kompliziert sein muss. Hilfe?!

Antwort

0

Das ist, was für mich funktionierte: Ich fand heraus, dass dieses Problem nur ein Problem ist, abhängig von dem Gerät, mit dem Sie arbeiten. Ich habe einen Samsung-Moment, also nach dem Testen in anderen Geräten (offensichtlich nicht alle von ihnen) und Emulatoren fand ich heraus, dass es nur mit meinem Telefon passiert.

Der folgende Link half mir, mein Problem zu lösen. Ich hoffe, es hilft Ihnen, ...

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

N-Joy!

Simmone

1

Ich habe das gleiche Problem. Wenn ich TimePickerDialog verwende, gibt es kein Problem. Für Timepicker in einem DialogPreference verwenden, das ist die Schlimmste Abhilfe, die ich je gemacht habe, die Ansicht Hierarchie des Timepicker hinunter:

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; 

So kann ich den Text direkt zugreifen konnte, die in eingegeben wurde - aber es SOLLTE ein besserer Weg sein, Tastatureingaben zu verwalten ...

+0

Cody ... sein kann, ist das Gerät. Ich habe das mit dem G1 überprüft und es hat gut funktioniert, aber es hat in meinem Samsung-Moment anders funktioniert. Haben Sie überprüft, ob das Verhalten bei anderen Geräten gleich ist? – monn3t

+0

Nein, das habe ich nicht, ich weiß nur, dass sich mein Zeitzähler auf einem Emulator nicht wie erwartet verhalten hat. Vielleicht hast du recht. Wenn es nicht auf allen Zielgeräten funktioniert, muss es eine Lösung geben. Sie können nicht einfach einen OnTimeSetListener an einen TimePicker anhängen, wie bei TimePickerDialog. Es scheint, dass der OnTimeChangedListener nur eine manuelle Eingabe vornimmt, wenn der entsprechende EditText den Fokus verliert, bevor die OK-Schaltfläche geklickt wird. Wenn der Fokus immer noch auf OK steht, wird dies vom OnTimeChangedListener nicht bemerkt. – cody

+0

@cody - Gerade kam dieser Thread nach dem Eingehen auf dieses Problem. Ich habe Ihren Workaround implementiert und es scheint perfekt zu funktionieren, aber da dieser Thread so alt ist, haben Sie einen besseren Weg gefunden, die Zeiten vom TimePicker zu bekommen, wenn Sie die Soft-Tastatur benutzen? – dell116

1

Mit Bezug auf den Kommentar von Cody, müssen Sie den Fokus vom TimePicker entfernen, wenn das Dialogfeld geschlossen wird.

Sie diese verwenden können, wo tp die Timepicker-Instanz:

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

Nicht verwandt, aber hasst jemand sonst die Art und Weise Code in diesen Antworten formatiert ist?Die gerenderte Ausgabe sieht normalerweise nicht so aus wie in der Bearbeitungsbox ...

Verwandte Themen