German Wie erkenne ich das angeklickte Label in einer Scrollview?

wbauer

Member
Licensed User
Longtime User
Hi Leute,

könnte ihr mir nochmals helfen?

Ich habe im Panel einer Scrollview 2 Label erzeugt, die das gleiche Event auslösen. Wie erkenne ich, in welches der Labels der User geklickt hat?

'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
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.


Dim MySV As ScrollView
Dim MyLabel As Label
End Sub


Sub Activity_Create(FirstTime As Boolean)
Dim i As Int


MySV.Initialize (1000)
MySV.Color = Colors.LightGray
Activity.AddView (MySV, 0,0,100%x, 100%y)

MyLabel.Initialize ("MyLabel")
MyLabel.Text = "Das ist Label Eins"
MyLabel.Color = Colors.Gray
MyLabel.Visible = True
MyLabel.Tag = "Label 1"
MySV.Panel.AddView (MyLabel, 10%x, 10%x, 80%x, 40%y)

'Dim MyLabel As Label
MyLabel.Initialize ("MyLabel")
MyLabel.Text = "Das ist Label Zwei"
MyLabel.Color = Colors.Black
MyLabel.Visible = True
MyLabel.Tag = "Label 2"
MySV.Panel.AddView (MyLabel, 10%x, 50%y, 80%x, 40%y)

End Sub

Sub Activity_Resume

End Sub

Sub MyLabel_Click
Msgbox ("Label Click", MyLabel.Tag)
End Sub

Sub MyLabel_Longclick
Msgbox ("Label LongClick", MyLabel.Tag)
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub
Derzeit bekomme ich im Click-Event - egal auf welches von den beiden Label ich klicke - immer den Tag des 2. Labels ausgegeben. Ist mir klar, ich habe ja das 2. Label zuletzt erzeugt. Aber ich habe keine Ahnung, wie ich erkenne, ob ich nun auf das 1. Label oder auf das 2. Label geklickt habe.

Hintergrund: In den Labels werden später Aktienwerte von unterschiedlichen Aktien eingeblendet. Mit dem Klick auf einen Label (=1 Aktie) möchte ich später Detailinformationen zu dieser einen Aktie nachladen.

Wäre toll, wenn ihr mir nochmals helfen könntet.

LG
Wolfgang
 

klaus

Expert
Licensed User
Longtime User
Das musst Du so machen:
B4X:
Sub MyLabel_Click
  Dim Send As View
 
  Send=Sender
  Msgbox ("Label Click", Send.Tag)
  Select Send.Tag
  Case "Label 1"
    ...
  Case "Label 2"
    ... 
  End Select
End Sub

Das zweite Dim MyLabel As Label das Du auskommentiert hast ist nötig.

Beste Grüsse.
 

wbauer

Member
Licensed User
Longtime User
Danke Klaus - so funktionierts.:sign0060:

das Object Sender kannte ich noch nicht - das hilft mir sehr weiter.

LG
Wolfgang
 
Top