Bonjour je souhaite créer un widget.
Pour le moment mon widget ne se compose que d' un panel et d' un bouton. Pour essayer la manipulation des widgets, je voudrais que lorsque que je clic sur le label une variable s' incrémente et s' affiche dans un label.
Seulement j' ai bien réussi à créer physiquement le widget, j' ai créé pour se faire un service. (comme le dit les tutos à cet effet).
Seulement je ne comprends pas ou mettre l' événement clic de mon bouton. J' ai tout essayé mais je n' y arrive pas.
Merci de votre aide.
Bonjour,
Normalement si tu assignes un layout à ton widget tu dois pouvoir implémenter les événements click de tous tes contrôles, images, labels, etc.
Il faut assigner cette "view" à ton widget par la méthode suivante dans le code du widget :
Sub Process_Globals
Dim rv As RemoteViews
Ensuite tu colles cette initialisation dans la création du widget
Sub Service_Create
'configure the widget and set it to update every 24 hours (1440 minutes).
rv = ConfigureHomeWidget("WidgetLayout", "rv", 1440, "xxxxxxxxx")
où xxxxx est le nom du widget que tu veux donner et WidgetLayout est le layout utilisé
Et alors dans le designer tu peux, avec un click droit sur un contrôle générer la racine de l'événement click dans le code du widget. Le reste c'est b4a qui s'occupe de compiler.
En espérant que cela t'aide.
Cordialement.
Laurent
P.S. :
Tu peux ajouter ceci aussi dans la Sub ci-dessous, cela fait revenir à une attente d'action utilisateur :
Sub Service_Start (StartingIntent As Intent)
'Verify if the intent on the widget is ok and return to wait action from user
If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub
Dans l'ordre ton widget appelle Service_Create, puis Service_Start et, si il est mis à la poubelle ou stoppé, Service_Destroy