Italian single item click

Yeshua

Member
Licensed User
Longtime User
Salve ragazzi!

Qualcuno di voi potrebbe autarmi?

ho trovato questo Thread:

http://www.b4x.com/forum/additional-libraries-classes-official-updates/18810-class-slidemenu.html#post108030

Hanno realizzato un fantastico menu a scomparsa con le varie opzioni su cui cliccare.

La mia domanda è proprio questa.
Come faccio ad eseguire una azione quando clicco su un item?

Per esempio: se clicco su "Item #1" panel1.visible = true.

Oltre al link di riferimento inserisco qui il codice per una preview.
Grazie a tutti in anticipo.

B4X:
'Activity module
Sub Process_Globals
   'These global variables will be declared once when the application starts.
   'These variables can be accessed from all modules.

End Sub

Sub Globals
   Dim sm As SlideMenu
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("1")
   
   sm.Initialize(Activity, Me, "SlideMenu", 42dip, 180dip)

   sm.AddItem("Item #1", LoadBitmap(File.DirAssets, "bomb.png"), 1)
   sm.AddItem("Item #2", LoadBitmap(File.DirAssets, "book_add.png"), 2)
   sm.AddItem("Item #3", LoadBitmap(File.DirAssets, "book_open.png"), 3)
   sm.AddItem("Item #4", LoadBitmap(File.DirAssets, "wrench.png"), 4)
   sm.AddItem("Item #5", LoadBitmap(File.DirAssets, "wrench_orange.png"), 5)
   sm.AddItem("Item #6", Null, 6)
   sm.AddItem("Item #7", Null, 7)
End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

'We capture the menu and back keys
Sub Activity_KeyPress (KeyCode As Int) As Boolean
   'Pressing the back key while the slidemenu is open will close it
   If KeyCode = KeyCodes.KEYCODE_BACK AND sm.isVisible Then
      sm.Hide
      Return True
   End If

   'Pressing the menu key will open/close the slidemenu
   If KeyCode = KeyCodes.KEYCODE_MENU Then
      If sm.isVisible Then sm.Hide Else sm.Show
      Return True
   End If
End Sub

'Show the slidemenu
Sub btnShow_Click
   sm.Show
End Sub

'Event sub which is called when an item in the slidemenu is clicked
Sub SlideMenu_Click(Item As Object)
   ToastMessageShow("Item clicked: " & Item, False)
End Sub
:sign0085:
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
L'evento dovrebbe essere questo:
B4X:
'Event sub which is called when an item in the slidemenu is clicked
Sub SlideMenu_Click(Item As Object)
    ToastMessageShow("Item clicked: " & Item, False)
End Sub

Sostituiscila con questa:
B4X:
 Sub SlideMenu_Click(Item As Object)
   'ToastMessageShow("Item clicked: " & Item, False)
   
   Select Case Item
      Case 1
         ToastMessageShow("Hai cliccato sul menu 1: " , False)
      Case 2
         ToastMessageShow("Hai cliccato sul menu 2: " , False)
      Case 3
         ToastMessageShow("Hai cliccato sul menu 3: " , False)
   End Select
End Sub

In base al menù che scegli entra in un case, avresti anche potuto usare degli if end if .
:sign0098:
 

Yeshua

Member
Licensed User
Longtime User
Grazie,adesso funziona, fantastico!

Avevo provato con gli "if" ma non andava, sbagliavo sicuramente qualcosa ed ero arrivato anche al tuo suggerimento, solo che omettevo Item in "Select Case".

Sono sicuro che, se adesso lo sviluppo con gli "If" e tengo conto di "Item", funziona ugualmente.

Cmq, grazie davvero per l'aiuto.:)
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Bene.
Comunque con gli if:

B4X:
 if Item=1 then
    ToastMessageShow("Hai cliccato sul menu 1: " , False)
 else if item=2 then
    ToastMessageShow("Hai cliccato sul menu 2: " , False)
 else if item=3 then
    ToastMessageShow("Hai cliccato sul menu 3: " , False)
endif

Io preferisco il select case :D
 
Top