Italian B4A - chiudere una pagina B4Pages

Aldo's

Active Member
Licensed User
Ciao a tutti
Ho un nuovo problema.
Utilizzo B4Pages ed ho la necessità di eseguire dopo una serie di operazioni l'uscita da una pagina (possibilmente) facendo in modo che alla prossima chiamata ricarichi tutto da capo.
Che cosa devo usare?
 

udg

Expert
Licensed User
Longtime User
Gli eventi che potrebbero interessarti sono:
  • B4XPage_Created - Called once when the page is created. This will happen before the page becomes visible or after a call to B4XPages.AddPageAndCreate.
  • B4XPage_Appear - Called whenever the page becomes visible.
  • B4XPage_Disappear - Called whenever a visible page disappear.
  • B4XPage_Background - Called when the app is moved to the background. This event will be raised in all pages that implement this sub, not just the top event. This is a good place to save anything that needs to be save as the process might be killed later. Note that in B4J it is raised when the last page is closed.
  • B4XPage_Foreground - Called when the app moved to the foreground.
  • B4XPage_CloseRequest (B4J / B4A) - In B4A it is called when the user clicks on the back key or on the up indicator. In B4J it is called when the user clicks on the close button. See post #4 for more information.
Quindi, se hai delle particolari inizializzazioni in Create comprendi che comunque tu chiuda la pagina non verranno rieseguite. Devi spostarle in Appear.
Background/Foreground ti sono utili per salvare/leggere da disco dati "permanenti"
CloseRequest può essere utile per il solito messaggio "sicuro di voler terminare?" , ad esempio.

Per chiudere hai il semplice ClosePage(Me), che "chiude" la pagina (ma non la distrugge) e passa a quella che la precede nello stack. Se la pagina era stata "chiamata" con B4XPages.ShowPageAndRemovePreviousPages allora sullo stack non c'è nulla e si attiva il termine del programma.
 

Aldo's

Active Member
Licensed User
Grazie per la risposta.
Il mio problema è questo: io chiudo la pagina con ClosePage(Me) e torno alla pagina precedente.
Nel corso del programma io potrei tornare ancora alla pagina chiusa e desidererei che non ci fossero più i valori inseriti la volta precedente.
Come posso ri-creare la pagina da capo?
 

udg

Expert
Licensed User
Longtime User
In quel caso fai uso di Appear e "pulisci" i campi del form o dei controlli che hai sulla pagina
 

Aldo's

Active Member
Licensed User
Provo subito
 

udg

Expert
Licensed User
Longtime User
Vero. Bisogna considerare il contesto (se esistono elementi da mantenere ed altri da "azzerare"), ma in generale è una buona idea.
C'è la possibilità che i valori di default non siano quelli eventualmente inseriti nel Designer e quindi l'accorgimento sarebbe meno efficare.
 

Aldo's

Active Member
Licensed User
Cavolo, con la prima di udg, ovviamente, funziona.
Adesso, per provare, provo anche quella di LucaMs.
Grazie moltissime
 
Top