Italian Views widget

veranio79

Member
Licensed User
Longtime User
Ciao a tutti, sono un nuovo felice possessore e smanettatore di b4a, mi chiamo Francesco e sono di Salerno.

Scrivo non solo per fare un saluto generale, ma per porre una domanda, probabilmente banale, ma che mi sta portando via un bel po di tempo.

Situazione: Sto sviluppando un widget che, nelle mie intenzioni, dovrebbe mostrarmi in una label la longitudine e la latitudine che leggo tramite il GPS. Tutto questo alla pressione di un button. Seguendo il tutorial sui widget, ho creato quindi il layout, ho aggiunto il modulo service e ho testato il tutto. sul mio cellofono (nexus 5) il widget appare nella lista e mi permette di posizionarlo in una home screen.

La domanda è: le sub che riguardano le views, button, label e co., dove dovrei inserirle? se le inserisco nel modulo main, ovviamente dal widget non rispondono. Se provo ad inserirle manualmente nel modulo service, in fase di debug il buon b4a mi restituisce
B4X:
Parsing code.                          0.00
Compiling code.                        Error
Error compiling program.
Error description: Cannot access activity object from sub Process_Globals.
Occurred on line: 9
Dim label1 As Label
Word: label

dal quale messaggio mi sembra di intuire che le sub che ho inserito nel modulo service vogliano andare a richiamare oggetti fantomatici che dovrebbero essere nell'activity.

Sto combinando un casino eh?

Qualcuno di buon cuore, ha voglia di aiutarmi a capire qualcosa?
Grazie a tutti in anticipo
 

veranio79

Member
Licensed User
Longtime User
Mi autorispondo, anche se in parte: per settare valori di una view, tipo label.text=("pincopallino"), nei moduli service che si usano per i widget bisogna richiamare il metodo RemoteViews.

Esempio: dim rv As Remoteviews

quindi per settare il valore della label di cui sopra: rv.SetText("label","pincopallino").

Magari può essere utile qualcuno

Ora mi resta la domanda:
Come intercetto l'evento Click su un button dal widget?
 

IlCasti

Active Member
Licensed User
Longtime User
Hai inserito il button da designer?
Se si, prova tasto DX sul button e genera l evento click dal menu
Metti uno stop alla sub e lancia in debug
Se si ferma intercetta l evento
 

LucaMs

Expert
Licensed User
Longtime User
Dato che io ho dato un'occhiata ai widget solo quando ho iniziato a trafficare con B4A (a novembre scorso) e che ho la memoria cortissima, per il momento non posso aiutarti e tu sei già più esperto di me .


Scrivo solo per salutarti e darti il benvenuto tra noi.
 

veranio79

Member
Licensed User
Longtime User
Hai inserito il button da designer?
Se si, prova tasto DX sul button e genera l evento click dal menu
Metti uno stop alla sub e lancia in debug
Se si ferma intercetta l evento

Grazie per la risposta. Il problema nasce dal fatto che nel modulo 'service' non mi è permesso dichiarare eventi che fanno capo al layout. Per intenderci, se provo a dichiarare Sub Button1_Click dal designer, mi risponde che non è possibile dichiarare eventi legati al lyout. Se provo a dichiararlo 'manualmente', in fase di debug mi da l'errore di cui sopra...

P.S. LucaMs grazie mille per il benvenuto
 

veranio79

Member
Licensed User
Longtime User
Hai dato un'occhiata a questo?
Grazie per la segnalazione Luca! in questo esempio il problema sembra essere il fatto che il msgbox non possa essere richiamato da un modulo service...mah, sta cosa è un mistero: in ogni esempio vedo che l'evento Click nei moduli service è normalmente utilizzato, però a me non funzia...a questo punto credo sia un problema mio e del mio ambiente di sviluppo...è ora di formattare....
 

LucaMs

Expert
Licensed User
Longtime User
Gli eventi li puoi gestire nei moduli di servizio, ma questi non hanno interfaccia grafica, per quello non si può utilizzare un msgbox.

Ripeto che conosco ben poco 'sti widget, ma leggendo il tutorial, un po' al volo, sembra non sia difficile, ad esempio, gestire nel modulo l'evento di un button aggiunto tramite Designer e qualunque altro evento simile su altre view. [come non detto, solo l'evento Click]

Se vuoi, puoi postare (zippato tramite File-Export as zip) il tuo codice oppure una parte.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…