Spanish Controlar el Enter del teclado numérico con B4A

Cristian Cordero

Member
Licensed User
Longtime User
Hola, por favor si alguien me ayuda a saber como se pude controlar el evento de la tecla Enter, ya que necesito hacer que al pulsar dicha tecla, usando el teclado numérico, el foco del cursor sea el primer EditText y no el tercero (cuando estoy en el segundo EditText de la pantalla y presionao la tecla Enter), es decir, que de los cinco campos que tengo en la pantalla, al presionar Enter el cursor se mueva sólo entre los primeros dos EditText y no pase al tercero, o sea romper la secuencia de navegación normal.

Muchas gracias
 

josejad

Expert
Licensed User
Longtime User
Hi Cristian:

You should write in English in this part of the forum, there's a specific Spanish Forum.

Deberías escribir en inglés en esta parte del foro, hay un foro en español.

No he probado, pero intenta con:
B4X:
Sub EditText3_EnterPressed
     EditText1.RequestFocus
End Sub
 

Cristian Cordero

Member
Licensed User
Longtime User
Hola José, gracias por la respuesta, ese si ya lo he intentado y no me lleva al EditText1, sigue al EditText3, ejecuta algunas sentencias antes ya l final tengo el RecuestFocus y no me lo hace.

Gracias
 

josejad

Expert
Licensed User
Longtime User
Puedes subir tu proyecto?

He probado y esto funciona bien

B4X:
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("Layout")
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
    xui.MsgboxAsync("Hello world!", "B4X")
End Sub

Private Sub EditText3_EnterPressed
    EditText1.RequestFocus
End Sub

Private Sub EditText2_EnterPressed
    
End Sub

Private Sub EditText1_EnterPressed
    
End Sub
 

Cristian Cordero

Member
Licensed User
Longtime User
José, tienes un EditText4, etc, otros que continuen luego del EditText3? No se si por ser el ultimo pasa de nuevo al primero, yo al tener otros me continua hacia abajo de la pantalla.

Gracias
 

Cristian Cordero

Member
Licensed User
Longtime User
Muchas gracias José por el interes mostrado con colaborar. Mira este ejemplo, el usuario desea con tecla Enter estar moviéndose entre los EditText1 y el EditText2, digitando montos, cuando ya decida terminar sólo pasa manualmente a digitar el nombre y el teléfono de la persona, eso es lo que se desea, pero el foco pasa de ET2 al ET3 (nombre).

Gracias
 

Attachments

  • prueba.zip
    390.9 KB · Views: 163

josejad

Expert
Licensed User
Longtime User
No me preguntes por qué, pero viendo este hilo, la solución es poner un Sleep(0) delante, y ya funciona.

B4X:
Private Sub EditText2_EnterPressed
    Sleep(0)
    EditText1.RequestFocus
    ToastMessageShow("Agrega monto1 y monto2 a lista y debe volver a monto1",False)
End Sub
 

josejad

Expert
Licensed User
Longtime User
Por cierto, qué versión de B4A estás usando? Deberías actualizar a la última si no la tienes.

saludos,
 
Top