6

Continuando con la questione pregiudiziale nel seguente link:Come posso acquisire quando il tempo cambia in un TimePicker se si utilizza la tastiera "Soft"?

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

ho potuto risolvere il problema, ma funziona solo quando si utilizza la tastiera vera e propria. Se si utilizza la tastiera virtuale non riesco a farlo funzionare.

Sto programmando nella versione 1.6 del framework.

Qualsiasi aiuto sarà molto apprezzato.

PS: Il fatto che ho cercato ovunque la risposta e non sono stato in grado di trovarlo mi dice che questo deve essere molto semplice o molto complicato. Aiuto?!

risposta

0

Questo è ciò che ha funzionato per me: Ho scoperto che questo problema è solo un problema a seconda del dispositivo con cui si lavora. Ho un Samsung Moment, quindi dopo aver provato su altri dispositivi (ovviamente non tutti) ed emulatori, ho scoperto che stava accadendo solo con il mio telefono.

Il seguente collegamento mi ha aiutato a risolvere il mio problema. Spero che ti aiuta ...

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

N-Joy!

Simmone

1

Ho lo stesso problema. Se uso TimePickerDialog non ci sono problemi. Per utilizzare TimePicker in un DialogPreference, questa è la soluzione peggiore che abbia mai fatto, scendendo la vista gerarchia della 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; 

questo modo ho potuto accedere al testo direttamente che è stato scritto in - ma ci DOVREBBE essere un modo migliore per gestire gli input da tastiera ...

+0

Cody ... può essere è il dispositivo. Ho controllato con il G1 e funzionava bene, ma ha funzionato in modo diverso nel mio Samsung Moment. Hai controllato se il comportamento è lo stesso su altri dispositivi? – monn3t

+0

No, non l'ho fatto, so solo che il mio timepicker non si comportava come previsto su un emulatore. Forse hai ragione. Ad ogni modo, se non funziona correttamente su tutti i dispositivi di destinazione, deve esserci una soluzione. Non puoi semplicemente collegare un OnTimeSetListener a un TimePicker, come per TimePickerDialog. Sembra che OnTimeChangedListener si occupi solo di un input manuale, se il rispettivo EditText perde lo stato attivo prima di fare clic sul pulsante OK. Se è ancora attivo quando si fa clic su OK, OnTimeChangedListener non se ne accorge. – cody

+0

@cody - Ho appena trovato questo thread dopo aver incontrato questo problema. Ho implementato la tua soluzione alternativa e sembra funzionare perfettamente, ma dal momento che questo thread è così vecchio, hai trovato un modo migliore per ottenere i tempi da TimePicker quando si utilizza la tastiera virtuale? – dell116

1

In riferimento al commento di Cody, è necessario rimuovere lo stato attivo da TimePicker quando la finestra di dialogo è chiusa.

È possibile utilizzare questo, dove tp è l'istanza TimePicker:

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

Non correlato, ma qualcun altro odia il modo in cui il codice è formattato in queste risposte?L'output renderizzato di solito non assomiglia a niente nella casella di modifica ...

Problemi correlati