Capisco, ovviamente che sia un esempio
Malgrado questo, ti suggerirei di usare nomi con prefissi "particolari", per poter distinguere le classi-pagine dagli oggetti-pagine (le variabili che nell'esempio hai chiamato page2a e page3a).
Solo come esempio, potresti chiamare le classi: pgcMaster, pgcDetails, pgcIndirizzi, ... ovvero col prefisso "pgc" che potrebbe stare per PaGeClass, e gli oggetti-pagina semplicemente col prefisso "pag", quindi pagMaster, pagDetails...
O qualunque prefisso piaccia a te, ma utile, intuitivo e "distintivo".
Private page2a As page2
Private page3a As page3
Ti conviene dichiararle come Public; in questo modo saranno accessibili da dovunque. Ad esempio, se hai page3a visualizzata e vuoi eseguire una routine (sub) pubblica della page2a o
accedere a una View pubblica della page2a
[cosa che non si può fare con le Activity, con le B4XPage sì], potresti scrivere:
B4XPages.MainPage.page2a.NomeSub
B4XPages.MainPage.page2a.edtImporto = 100
E' necessario inserire B4XPages.AddPageAndCreate (non Add) nella MainPage
Non so bene perché
@Star-Dust abbia scritto questo; probabilmente non ho letto bene i post precedenti (oh, è pure tarduccio) ma non è una regola generale, anzi.
Infatti, come norma dovresti usare .AddPage(...), non .AddPageAndCreate(...).
La differenza tra i due metodi è che il secondo fa sì che venga eseguita anche la routine-evento B4XPage_Created, il primo no. Dato che, normalmente, è in questa routine che carichiamo il layout della pagina, in questo modo le View saranno "subito" disponibili; il "contro" è che il metodo sarà più lento, per lo stesso motivo (LoadLayout).
Un altro suggerimento potrebbe essere: nella B4XMainPage potresti anche scrivere delle costanti (o variabili ma meglio le costanti) pubbliche con gli ID delle pagine.
Ad esempio, mettiamo che tu abbia una classe-pagina pgcDetails:
Public pagDetails As pgcDetails
Public Const ID_DETAILS As String = "Details"
'
'
B4XPages.AddPage(ID_DETAILS, pagDetails)
.
.
Da qualunque parte del progetto:
B4XPages.ShowPage(B4XPages.MainPage.ID_DETAILS)
Questo perché così non dovrai ricordare le stringhe ID di pagina, le otterrai elencate dopo il punto di B4XPages.MainPage., e tantomeno potrai sbagliare a digitarle.
[Questa sopra è una regola generale: evitare di scrivere "literals" nel sorgente; usare sempre variabili o costanti].
Per lo "slide menu", usa questo:
https://www.b4x.com/android/forum/threads/solved-b4xdrawer-and-b4xpages-in-class.138771/post-878751
(Dopo tutto questo... davvero dovrei fare dei video-tutorial sulle B4XPages? ?)