Folgendes Szenario: ich habe eine Liste, in dieser Liste sind Views, wenn ich jetzt einen Button, in dieser liste drücke, fange ich das ab mit dem Click Event + Sender.
Das klappt auch, was ist aber wenn ich bei dem Button click aus der Liste ein weiteres View z.B. ein Label umbenennen will, beim Button click? Ich habe dazu keine richtige Lösung gefunden.
Wenn button und label auf einem gemeinsmen pane liegen könnte das helfen:
B4X:
Sub Button_Action
Dim b As Button = Sender
Dim p As Pane = b.Parent
For Each view As Node In p.GetAllViewsRecursive
If view Is Label Then
Dim lbl As Label = view
'evtl noch lbl.tag abfragen wenn es mehrere label gibt
lbl.Text = "Neuer Text"
End If
Next
End Sub
War zwar Code für B4I, aber ich habe es ULV sei dank doch einfacher hinbekommen
wer die UltimateListView nutzt hat automatisch ein Panel hinterlegt, dieses Panel kann man leicht initialisieren.
B4X:
Sub btn_like_Click
dim btn_like as Button = Sender
dim LayoutPanel as Panel = btn_like.Parent
dim btn_dislike as Button = LayoutPanel.GetView(10) 'die Zahl steht für den Platz im Designer wo das View ist, von 0 an fängt man an zu Zählen
btn_dislike.Visible = False
End Sub
Für den Fall du das design änderst ich würde den button nicht direkt mit NR ansprechen sondern die TAG Eigenschaft belegen und nach ihr suchen
Denn nach 2-3 Monaten weißt du nicht mehr das du das mit ändern musst.
eigentlich brauchst du nur Pane durch Panel
und _Action durch _Click ersetzen
und sicherheitshalber view durch v (view ist glaube ich eine eigene klasse)