Italian [RISOLTO] ToastMessageShow per B4J (B4X)

Sabotto

Active Member
Licensed User
Cosa devo usare in un progetto B4X (per la versione B4J) nelle righe dove ho usato ToastmessageShow?
Stavo per provare questa libreria di @lonleystar ma credo che non funzioni piu bene da una certa versione di android in poi.
Non c'è il ToastMessageShow per le B4XPages?
 

LucaMs

Expert
Licensed User
Longtime User
Non c'è il ToastMessageShow per le B4XPages?
Non confonderti. Forse volevi chiedere se esista un ToastMessage che sia B4X, crossplatform, unico per B4A, B4J e B4i. Le B4XPages non c'entrano (anche se pure queste sono crossplatform).

Credo di no, B4X non ne ricordo (ma cercherò); ne ricordo una per B4J, cui avevo aggiunto un'immagine... raccapricciante 🤣 (cerco anche questa)
 

Sabotto

Active Member
Licensed User
Non confonderti. Forse volevi chiedere se esista un ToastMessage che sia B4X, crossplatform, unico per B4A, B4J e B4i. Le B4XPages non c'entrano (anche se pure queste sono crossplatform).
Maestro mi ilumini: Se scelgo un progetto con le B4Xpages, non è un progetto Crossplatform? (non è una cosa che implicita l'altra?)
Comunque come avrai capito il progettino è in B4A funzionante ma quando lo lancio in B4J mi da tutti gli errori nelle istruzioni che hanno il ToastMessageShow
Immagno che dovrò usare il
B4X:
#If B4A
    ToastMessageShow(msgErr, False)
#Else if B4J
    'che ce metto?....
#End If
 

Sabotto

Active Member
Licensed User
Quindi non c'è soluzione? Se lo voglio far funzionare in B4J devo usare altro, tipo MsgBox?
Parlo sempre del ToastMsgShow compreso nel Core di B4A
 

LucaMs

Expert
Licensed User
Longtime User
Aspetta un attimo, perché lo ho appena provato in B4XPages-B4A e funziona benissimo. Provo B4J...
Funziona anche in B4J, senza cambiare una virgola:
B4X:
#Region Shared Files
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
#End Region

'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip

Sub Class_Globals
    Private Root As B4XView
    Private xui As XUI
    
    Private mBCToast As BCToast
End Sub

Public Sub Initialize
'    B4XPages.GetManager.LogEvents = True
End Sub

'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
    Root = Root1
    Root.LoadLayout("MainPage")
    mBCToast.Initialize(Root)
End Sub

'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.

Private Sub Button1_Click
    mBCToast.Show("Message")
End Sub
 

Sabotto

Active Member
Licensed User
Si funziona.
Ora non so se sostituire tutti i "ToastMessageShow" nel codice B4A con questa libreria esterna o lasciarli ed utiliizzarla solo per B4J con le varie
B4X:
#If B4A
    ToastMessageShow(msgErr, False)
#Else if B4J
   mBCToast.Show(msgErr)
#End If
 

Sabotto

Active Member
Licensed User
Uhm.. il problema è che devo dichiarane una istanza in ogni pagina dove devo usarlo...?!
Cioè una
B4X:
Dim mBCToast as BCToast
'e una
mBCToast.Initialize(Root)
'in ogni pagina.
 

LucaMs

Expert
Licensed User
Longtime User
Uhm.. il problema è che devo dichiarane una istanza in ogni pagina dove devo usarlo...?!
Cioè una
B4X:
Dim mBCToast as BCToast
'e una
mBCToast.Initialize(Root)
'in ogni pagina.
Ha ovviamente bisogno del pannello Root delle pagina in cui vuoi visualizzarlo.
O fai come hai detto, un oggetto BCToast in ogni pagina, o mettilo nella MainPage, scrivi un metodo (Sub) pubblico in questa, di nome ShowToast, ad esempio...
Ecco, scrivo direttamente l'esempio 😄

Fatto, allegato.
 

Attachments

  • BCToastTest.zip
    16.7 KB · Views: 38

Sabotto

Active Member
Licensed User
Perfetto. Solo che la metterò nel mio modulo di codice GL dove ho tutye le cose a livello globale.
Mi è antipatico chiamare
B4X:
B4XPages.MainPage.ShowToast("Viva i sarchiaponi nani", Root)
'troppo lungo

'preferisco avere in GL
Public Sub ShowToast1(Msg As String, Pnl As B4XView)
    B4XPages.MainPage.ShowToast(Msg, Pnl)
End Sub

e nelle pagine dove mi occorre
GL.ShowToast1("Viva i sarchiaponi nani", Root)
 
Top