|   FOROS      |     Tutoriales    |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 WAMP - PHP - MySQL
   Elastix - VoIP Cosas de Windows Webs interesantes Arduino
  Estación meteorológica      

 


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Basic4Android.

45.- KeyCode. Teclas pulsadas. Diálogo de salida. Notificaciones.

Tutoriales. KeyCode. Teclas pulsadas. Diálogo de salida. Notificaciones.

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.

 

________________________________

Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.com

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información