Italian Menu , come cambiare activity

bube89

Member
Licensed User
Salve a tutti
chiedo gentilmente un aiuto sto utilizzando il menu tree fornito da Erel ,
https://www.b4x.com/android/forum/t...g-or-collapsing-xcustomlistview-items.106148/
non riesco a capire come poter accedere ad un altra activity utilizzando il bottone1 sottostante di un "item" portandomi con me la logica del menu.

ho utilizzato la classe B4XDrawer per creare il menu a scomparsa inserendo il menu tree di Erel utilizzando solo 1 item, per fare le prove.
Quindi ho creato un altra activity e la sub del bottone nel main che richiama l'activity creata con un suo layout, però giustamente quando provo il click del bottone mi apre la nuova activity ma senza la logica del menu a scomparsa creata in precedenza nel main, come posso fare? come posso aggiungere a tutte le activity che farò la logica del menu che ho nel main?
 

Attachments

  • IMG_xgelbc.gif
    348.8 KB · Views: 323
Last edited:

GIS

Well-Known Member
Licensed User
ciao, se metti dello snippes forse si capisce meglio. Cosa intendi per logica del bottone. Forse devi rendere una variabile/array comune a tutto il progetto se vuoi far passare un valore da una Activity all altra.
B4X:
Sub Process_Globals
  
        Dim Scelta As Int
      
End Sub
 
Last edited:

bube89

Member
Licensed User
Grazie la risposta , ho aggiunto una gif per far capire cosa intendo anche se non si vede benissimo, praticamente quando clicco il bottone mi apre l'activity che ho creato ma non riesco in questa nuova activity che mi apre a rifar apparire anche il menu che ho fatto nel main
 

udg

Expert
Licensed User
Longtime User
Vedo che sei un nuovo (nuovissimo) membro della comunità: benvenuto!
LucaMs ti ha già risposto in merito alle possibilità.

Potresti anche delegare il menu ad una classe ed in ciascuna activity instanziare quella classe.
Per avere un'idea guarda qui.
 
Last edited:

bube89

Member
Licensed User
Si si nuovissimo , profumo ancora . Grazie per il benvenuto e grazie a tutti per le risposte ,opterò per una custom view se riesco visto che sono nuovissimo di b4a avrò un bel po di problemi che cercherò il più possibile di risolvere da solo, quando mi farò risentire vuol dire che saranno passate ore di dura agonia davanti al pc . Ancora grazie a tutti

p.s
per caso c'è un file o nel forum i metodi delle librerie che vengono fornite in b4a?
 

GIS

Well-Known Member
Licensed User
https://www.b4x.com/android/forum/forums/additional-libraries-classes-and-official-updates.29/
qui trovi tutte le librerie addizionali. Cmq basta che fai una ricerca....Poi credo che le librerie siano utili trovare quando cerchi di fare qualcosa. Una lista non so che senso possa avere. Sapere che c'è una libreria che fa una determinata cosa che non usi a che ti serve sapere. Quando cerchi qualcosa e trovi una libreria che ti può essere utile allora si.

Cmq qui ci sono dei veri professionisti che ti possono rispondere, di cui i non faccio parte. Tanto per precisare.
 

Sagenut

Expert
Licensed User
Longtime User
Forse oltre alle librerie aggiuntive lui cercava questo:
https://www.b4x.com/android/documentation.html
Quì trovi un pò tutti i metodi e i parametri dei vari comandi e librerie inclusi di base con B4A.
E Benvenuto!
 

bube89

Member
Licensed User
Forse oltre alle librerie aggiuntive lui cercava questo:
https://www.b4x.com/android/documentation.html
Quì trovi un pò tutti i metodi e i parametri dei vari comandi e librerie inclusi di base con B4A.
E Benvenuto!


Grazie per il link , era proprio questo .

Spero di non andare offTopic , ma non capisco appieno queste CustomView , ho provato a nazzicare a giro e a vedere qualche esempio ( ne so uscito cosi).
il layout lo devo scrive in codice della CustomView? ( anche se in alcuni esempi il layout viene creato appositamente se non erro)

Comunque se non sbaglio la "logica", che mi ha suggerito LucaMs è di fare una CustomView con dentro il codice del menu che ha fornito Erel, ma il codice di Erel ha dentro un altra customView che richiama un layout ( sembra una matriosca), come posso fare?



il Codice del main è questo

B4X:
Sub Globals
    Private clv1 As CustomListView
    Private lblTitle As B4XView
    Private pnlTitle As B4XView
    Private pnlExpanded As B4XView
    Private xui As XUI
    Private expandable As CLVExpandable
   
    Dim Drawer As B4XDrawer
   
   
    Private Label1 As Label
   
 
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Activity.LoadLayout("1")
   
   
    Drawer.Initialize(Me, "Drawer", Activity, 45%y)
    Drawer.CenterPanel.LoadLayout("Main")
    Drawer.LeftPanel.LoadLayout("1")
    expandable.Initialize(clv1)
   
        Dim p As B4XView = CreateItem(Rnd(0xFF000000, 0xFFFFFFFF), "ITEM1", 45%y)
        clv1.Add(p, expandable.CreateValue(p, "some value"))
        Label1.Text=" pagina iniziale"
       
  
       
End Sub

Sub CreateItem(clr As Int, Title As String, ExpandedHeight As Int) As B4XView
    Dim p As B4XView = xui.CreatePanel("")
    p.SetLayoutAnimated(0, 0, 0, clv1.AsView.Width, ExpandedHeight)
    p.LoadLayout("Item")
    p.SetLayoutAnimated(0, 0, 0, p.Width, p.GetView(0).Height) 'resize it to the collapsed height
    lblTitle.Text = Title
    pnlTitle.Color = clr
    Return p
End Sub


Sub clv1_ItemClick (Index As Int, Value As Object)
    expandable.ToggleItem(Index)
End Sub


Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub Button1_Click
    StartActivity(resistenze)
 

LucaMs

Expert
Licensed User
Longtime User
il layout lo devo scrive in codice della CustomView?
Normalmente sì ma, se non sbaglio, puoi anche caricarlo da file, chiamando una routine apposita usando CallSubDelayed dall'interno della routine DesignerCreateView.
In questo secondo caso, però, sorgerebbe il problema nel caso in cui tu volessi compilare la custom view come libreria, perché dovresti incorporare in questa il file di layout, cosa fattibile ma... dovresti studiare come questo:
https://www.b4x.com/android/forum/threads/embedding-files-in-compiled-libraries.37689/#content

Comunque se non sbaglio la "logica", che mi ha suggerito LucaMs è di fare una CustomView con dentro il codice del menu che ha fornito Erel
No, non ho nemmeno guardato il codice di Erel, volevo solo consigliarti di creare una custom view (il tuo menu) in modo da poterlo caricare nei layout delle Activity in cui vuoi che compaia.

il Codice del main è questo
Ecco, l'ho guardato adesso. In quel Main viene dimostrato l'utilizzo di una custom view piuttosto sofisticata, CLVExpandable.
Tu invece dovresti creare la tua semplice "barra menu", con un panel con angoli arrotondati, colorato, con delle imageview che fungano da button e con gli eventi associati a queste ultime.
 

bube89

Member
Licensed User
Grazie LucaMs ,ma volevo riuscire a riprodurre un "menu tree" ,ho bisogno di avere dei sotto menu personalizzabili, per questo mi sto tanto ingarbugliando, secondo te è una cosa fattibile per me che sono alle prime armi riuscire nell'intento ?
Perché avrei trovato un altro metodo , cioè ogni volta che chiamo un activity dal main tramite quel menu, aggiungo ad essa (activity) un pulsante che ritorna al main, però è un po "brutto" passami il termine
 

Sagenut

Expert
Licensed User
Longtime User
Avventurarsi in una CustomView essendo, come dici tu, alle prime armi forse è un passo un pò più grande del dovuto.
Ciò non vuol dire impossibile.
A mio parere non c'è una linea unica è uguale per tutti per l'apprendimento.
Uno si concentra e cerca di imparare quello che gli serve al momento.
Però ci devono essere un pò di basi minime.
Ma vedrai che con i consigli degli esperti, gli altri non io, tiri fuori qualcosa piano piano.
Queste letture sono molto importanti:
https://www.b4x.com/android/forum/threads/b4x-documentation-booklets.88985/
E ci trovi anche un documento dedicato proprio alle CustomView.
Buona Lettura e Buon Lavoro!
 

LucaMs

Expert
Licensed User
Longtime User
Grazie LucaMs ,ma volevo riuscire a riprodurre un "menu tree" ,ho bisogno di avere dei sotto menu personalizzabili, per questo mi sto tanto ingarbugliando, secondo te è una cosa fattibile per me che sono alle prime armi riuscire nell'intento ?
Beh, una custom view di questo tipo, con un numero non predefinito di sotto-menu, per quanto possibile è sicuramente complicata.

Perché avrei trovato un altro metodo , cioè ogni volta che chiamo un activity dal main tramite quel menu, aggiungo ad essa (activity) un pulsante che ritorna al main, però è un po "brutto" passami il termine
Non è necessario aggiungere un pulsante, l'utente premerà il tasto Back del dispositivo, uscendo dall'Activity corrente e tornando a quella chiamante.
Nel caso in cui si voglia forzare il ritorno alla Main malgrado si sia passati tramite un'altra Activity, basta gestire l'evento Activity_KeyPress:
B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean 'Return True to consume the event
   If KeyCode = KeyCodes.KEYCODE_BACK Then
       StartActivity(Main)
   End If
End Sub
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…