B4A en español - Juan Antonio Villalpando
(BASIC4Android)
-- Tutorial de B4A --
Volver al índice del tutorial
____________________________
76.- Widgets. Servicios.
Un Widgets es un pequeño programa situado en la pantalla de inicio del Android.
_________________
- Designer.
Designer - Layout
|
|
1.- Creamos un nuevo proyecto llamado Widgets.
Vamos al Designer y ponemos una Label y un Button como indica la figura.
2.- Guardamos el Designer (File / Save) con el nombre layout
3.- Copiamos el código de la ventana de abajo.
Podemos ejecutar el programa. Lo único que hace por ahora es cerrar el propio programa cuando pulsamos el botón.
|
_________________
- Código.
Copia y pega este código. |
Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' kio4.com
' 20 de septiembre de 2013
End Sub
Sub Globals
End Sub
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
ExitApplication
End Sub
|
___________________________
- Creación del Servicio.
- Creamos un nuevo módulo de servicio de esta manera Project / Add New Module / Service Module.
- Le vamos a llamar servicio
- Aquí lo tenemos: servicio
- Estando en servicio vamos al Designer y creamos un nuevo layout.
Designer - Layout
|
|
En este nuevo layout, ponemos un Panel y dentro del Panel tres botones: Button1, Button2, Button3 y un Label1 (el color de texto del Label1 en rojo).
En la figura de la derecha se ve el Panel blanco y encima de él los tres botones.
A un botón le nombramos como Inicio, otro Navegador y otro Calculadora.
Este layout lo guardamos (File / Save) con el nombre layout_widget
Tenemos dos layout: layout y layout_widget7
Si queremos ir a uno u otro vamos al Designer / File / Open
NOTA: si ponemos el Panel transparente (Alpha=0) no se verá.
|
- Vamos al código del servicio y pegamos el siguiente código:
Copia y pega este código en servicio. |
'Service module
Sub Process_Globals
Dim rv As RemoteViews
Dim Timer1 As Timer
Dim tiempo As Int
End Sub
Sub Service_Create
tiempo = 0
rv = ConfigureHomeWidget("layout_widget", "rv", 0, "Este es mi Widget")
Timer1.Initialize("Timer1", 1000) ' 1000 = 1 segundo
Timer1.Enabled = True
Dim Label1 As Label
End Sub
Sub Service_Start (StartingIntent As Intent)
If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub
Sub rv_RequestUpdate
' Subrutina de actualización
rv.SetText("Label1", tiempo)
rv.UpdateWidget
End Sub
Sub rv_Disabled
StopService("")
End Sub
Sub Service_Destroy
End Sub
Sub Button1_Click
StartActivity(Main)
End Sub
Sub Button2_Click
Dim i As Intent
i.Initialize(i.ACTION_MAIN, "")
i.SetComponent("com.android.browser/.BrowserActivity")
StartActivity(i)
End Sub
Sub Button3_Click
Dim i As Intent
i.Initialize(i.ACTION_MAIN, "")
i.SetComponent("com.android.calculator2/.Calculator")
StartActivity(i)
End Sub
Sub Timer1_Tick
tiempo = tiempo + 1
rv_RequestUpdate
End Sub
|
En la línea...
rv = ConfigureHomeWidget("layout_widget", "rv", 0, "Este es mi Widget")
El 0 significa que el Widget no se actualiza, si quisieramos un Widget que se actualilzara cada cierto tiempo como un reloj, conectar con una web de previsión del tiempo, una posición de GPS, etc... pondríamos en vez del 0, la cantidad de segundos a los que queremos que se actualice.
_________________________________
- Ya lo tenemos. Lo ejecutamos.
Localización del Widget
|
Pulsamos el botón de casa para ir a la pantalla de inicio.
Tal vez no halla sitio para poner nuestro Widget, así que desplazamos la pantalla hacia la izquierda.
|
Pulsamos un par de segundos sobre la pantalla y obtendremos esta ventana...
Pulsamos en Widgets
|
Ejecución del Widget
|
Aquí tenemos nuestro Widget.
|
Aquí está en funcionamiento...
|
_________________
- Comentarios.
Se puede interpretar fácilmente lo que hace nuestro Widget. Tiene tres botones, el primero nos llevará a la pantalla de inicio del programa.
El segundo botón nos llevará a un Navegador Web y el tercer botón lanzará la Calculadora.
En fin, creo que jugando un poco con él, podemos interpretar su funcionamiento.
_________________________________________________
- Para borrar el Widget pulsamos un par de segundos sobre él. Saldrá abajo de la pantalla una papelera, lo arrastramos a la papelera.
________________________________
|