Ciao a tutti, da qualche tempo per realizzare un progetto personale sono tornato a quel B4A che per un anno, tempo fa, ho usato senza sosta.
Non so se in passato ho mai scritto sul forum italiano, e forse molti di voi non c'erano, nel caso piacere di conoscervi.
Questo il problema. Dalla MainPage, dopo che l'utente ha effettuato alcune scelte, premendo un pulsante la app passa alla pagina 2 di dettaglio. Vorrei che la app consentisse, con il back, di tornare alla MainPage, modificare alcuni dati e così premendo il pulsante venisse nuovamente aggiornata la pagina 2 di dettaglio. Per l'esattezza, la pagina 2 si comporta così:
Il tutto funziona perfettamente. Ma se torno indietro e poi modifico i dati richiesti e premendo il pulsante torno alla pagina 2, la B4XPage_Created non viene chiaramente più chiamata.
Ho cercato nel forum e ho trovato un problema simile la cui soluzione era implementare nella page2:
Anche perchè senza questo codice, premendo back la app va in crash:
Ora, questo mi ha fatto scrivere nella mainPage, nel codice legato all'evento del pulsante che raccoglie i dati inseriti dall'utente, aggiorna la variabile Public definita nella mainPage, e apre la pagina 2 di dettaglio:
Ebbene tutto in apparenza funziona, ma non solo quando torno la seconda volta nella page2 ci sono i risultati precedenti, pare pure mi ricarichi lo stesso layout sul precedente. In altre parole vedo i dati nuovi, per ogni campo, sovrapposti ai vecchi:
al prima "passaggio" nella pagina c'era un 39, al secondo un 40.
Qualche suggerimento? So che è un problema banale e ammetto la mia incapacità nel trovare una soluzione nel forum ... ma ho risolto tutto il resto, la app va perfettamente, ma questo no.
Grazie.
Non so se in passato ho mai scritto sul forum italiano, e forse molti di voi non c'erano, nel caso piacere di conoscervi.
Questo il problema. Dalla MainPage, dopo che l'utente ha effettuato alcune scelte, premendo un pulsante la app passa alla pagina 2 di dettaglio. Vorrei che la app consentisse, con il back, di tornare alla MainPage, modificare alcuni dati e così premendo il pulsante venisse nuovamente aggiornata la pagina 2 di dettaglio. Per l'esattezza, la pagina 2 si comporta così:
B4XPage_Created:
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("stopdetailspage")
B4XPages.AddPage("Main", mainPage)
' Populate ddl
' alcune operazioni per popolare una B4XComboBox sulla base del risultato di una chiamata a una API
' che ha come parametro di input una variabile recuperata dalla mainPage.
End Sub
Il tutto funziona perfettamente. Ma se torno indietro e poi modifico i dati richiesti e premendo il pulsante torno alla pagina 2, la B4XPage_Created non viene chiaramente più chiamata.
Ho cercato nel forum e ho trovato un problema simile la cui soluzione era implementare nella page2:
B4XPage_CloseRequest:
Private Sub B4XPage_CloseRequest As ResumableSub
B4XPages.GetManager.ClosePage(Me)
Return False
End Sub
Anche perchè senza questo codice, premendo back la app va in crash:
Error:
Error occurred on line: 353 (B4XPagesManager)
java.lang.reflect.InvocationTargetException
...
Caused by: java.lang.NullPointerException: Attempt to read from field 'boolean b4a.example.b4xpagesmanager$_b4xpageinfo.Created' on a null object reference in method 'java.lang.String b4a.example.b4xpagesmanager._createpageifneeded(b4a.example.b4xpagesmanager, b4a.example.b4xpagesmanager$_b4xpageinfo)'
Ora, questo mi ha fatto scrivere nella mainPage, nel codice legato all'evento del pulsante che raccoglie i dati inseriti dall'utente, aggiorna la variabile Public definita nella mainPage, e apre la pagina 2 di dettaglio:
Click to open page2:
Private Sub cmdSelFromFav_Click
' un po' di codice
If Page2.IsInitialized = False Then
B4XPages.AddPage("Page2", Page2.Initialize)
End If
B4XPages.ShowPage("Page2")
End Sub
Ebbene tutto in apparenza funziona, ma non solo quando torno la seconda volta nella page2 ci sono i risultati precedenti, pare pure mi ricarichi lo stesso layout sul precedente. In altre parole vedo i dati nuovi, per ogni campo, sovrapposti ai vecchi:
al prima "passaggio" nella pagina c'era un 39, al secondo un 40.
Qualche suggerimento? So che è un problema banale e ammetto la mia incapacità nel trovare una soluzione nel forum ... ma ho risolto tutto il resto, la app va perfettamente, ma questo no.
Grazie.