- Presentación.
- Vamos a ver como podemos detectar la tecla pulsada y realizar una acción según cual sea.
- Primero creamos mediante código una etiqueta Label1.
- Luego mediante la Subrutina Sub Activity_KeyPress (KeyCode As Int), consultamos si se ha pulsado alguna tecla.
- En la variable KeyCode obtenemos el código ASCII de la tecla pulsada.
Label1.Text = "Tecla pulsada " & KeyCode
- Case KeyCodes.KEYCODE_A
Además podemos consultar qué tecla se ha pulsado, y según cual sea, se ejecutará una serie de instrucciones.
- Case KeyCodes.KEYCODE_BACK
En caso que pulsemos la tecla de "Retorno", nos preguntará mediante un MsgBox si queremos salir del programa.
- La Subrutina Sub Activity_KeyUp (KeyCode As Int) detecta cuando se ha dejado de pulsar una tecla.
El código es fácil de entender.
Aquí podemos ver el listado de códigos disponibles.
Especialmente puedes utilizar las teclas de Atrás, volumen + y volumen -
Teclas pulsadas.
|
'Activity module
Sub Process_Globals
End Sub
Sub Globals
Dim Label1 As Label
Dim n As Notification
End Sub
Sub Activity_Create(FirstTime As Boolean)
Label1.Initialize("")
Label1.Color = Colors.Red
Label1.TextSize = 20
Label1.TextColor = Colors.Blue
Label1.Gravity = Gravity.CENTER_HORIZONTAL + Gravity.CENTER_VERTICAL
Label1.Text = "Teclado"
Activity.AddView(Label1, 10%x, 10dip, 80%x, 30dip)
' Notificación
n.Initialize
n.Icon = "icon"
n.AutoCancel= False
n.SetInfo("Teclado", "Ejemplo de notificación", "")
n.Notify(1)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Activity_KeyUp (KeyCode As Int) As Boolean
If KeyCode = KeyCodes.KEYCODE_A Then
Label1.Text = "La tecla A fue pulsada"
End If
End Sub
Sub Activity_KeyPress (KeyCode As Int) As Boolean
Label1.Text = "Tecla pulsada " & KeyCode
Select KeyCode
Case KeyCodes.KEYCODE_A
' Aqui podemos poner el código para la tecla A
' ...........................
ToastMessageShow ("Has pulsado la tecla A", True)
Case KeyCodes.KEYCODE_B
' Aqui podemos poner el código para la tecla B
' ...........................
ToastMessageShow ("Has pulsado la tecla B", True)
Case KeyCodes.KEYCODE_BACK
Label1.Text = "Tecla pulsada " & KeyCode
DialogodeSalida
Return True
End Select
End Sub
Sub DialogodeSalida
Dim mensaje As Int
mensaje = Msgbox2 ("¿Cerrar el programa?","","Si","","No",Null)
Select mensaje
Case DialogResponse.POSITIVE
' Cierra Notificación y Activity
n.Cancel(1)
Activity.Finish
Case DialogResponse.CANCEL
DialogodeSalida
End Select
End Sub
|
______________________
- Notificaciones.
He añadido el siguiente código:
Dim n As Notification
' Notificación
n.Initialize
n.Icon = "icon"
n.AutoCancel= True
n.SetInfo("Teclado", "Ejemplo de notificación", "")
n.Notify(1)
- Esto hace que cuando se crea la aplicación, aparece un icono en la parte superior izquierda de la pantalla.
- Si vamos a otra aplicación el icono de notificación seguirá presente. De tal manera que si lo arrastramos para abajo, nos saldrá una ventana desde donde podemos volver a lanzar la aplicación anterior.
- Si añadimos en la Subrutina de DialogodeSalida...
' Cierra Notificación y Activity
n.Cancel(1)
... se eliminará el icono de Notificación y se cerrará la Aplicación cuando pulsemos el botón de "Retorno"
Aquí podemos ver la guía de Notification.
- El icono que se presenta lo podemos cambiar copiando un dibujo en la carpeta:
C:\Android\Teclas\Objects\res\drawable
___________________________________________
- Las Notificaciones se suelen utilizar en los Servicios.
Por ejemplo, supongamos que tenemos un Servicio que es un Temporizador. El servicio funciona en segundo plano, es decir, se ejecuta y podemos estar actuando con otras aplicaciones mientras el servicio Temporizador está funcionando.
Cuando el servicio Temporizador llega a cierta hora programada, lanza una Notificación mediante un icono que sitúa en la parte superior izquierda de la pantalla, este icono de Notificación nos informa que ha llegado la hora programada.
La Notificación, además del icono puede enviar un sonido o hacer vibrar el móvil.
n.Initialize
n.OnGoingEvent = True
n.Sound = True
n.Vibrate = True
n.Icon = "icon"
n.SetInfo("Teclado", "Ejemplo de notificación", "")
n.Autocancel = False
n.Notify(1)
___________________________________________
En el tutorial anterior vimos los Servicios, que son procesos que se están realizando contínuamente en segundo plano. Podemos crear un servicio de tecla pulsada y hacerlo funcionar continuamente en segundo plano, de tal manera que cuando pulsemos cierta tecla se realice cierta acción.
- Si queremos iniciar el servicio en el arranque pulsamos: Service Properties: Start At Boot cuando estemos creando el servicio.