Spanish xCustomlistview con 3 botones

¿Cómo puedo programar un xCustomlistview con 3 botones, en dónde al presionar un botón cambie una propiedad (color por ejemplo) de los otros 2?

He tratado con algunos ejemplos aquí y en youtube sin lograr que funcionen (Itemclick y Button Click), obteniendo el índice y nada...

Por favor su ayuda iluminando como sería la solución, ya que los 3 botones van a estar dentro de un panel y sólo uno de ellos puede quedar "coloreado" al ser elegido.

P.D. En vez de 3 botones podrían ser 3 etiquetas, cualquiera de estos 2 tipos de controles que puedan disparar el evento Click me serviría.

No adjunto ningún código porque quiero comprender desde cero esta funcionalidad que entrega el xcustomlistview

 
Solution
Hola:

Descárgate el ejemplo del xCustomListView y échale un vistazo al código.

Te adjunto un ejemplo rápido y simple, lo principal está en:

B4X:
'IMPORTANTE, EN EL VISUAL DESIGNER TIENES QUE CAMBIAR EL NOMBRE DE TODOS LOS EVENTOS PARA QUE SEAN EL MISMO, NO Button1_Click, Button2_Click
Private Sub Button_Click 'Los eventos de todos los botones deben llamarse Button
    Dim button As B4XView = Sender 'Obtenemos el botón que ha llamado al evento
    Dim index As Int = xCLV.GetItemFromView(Sender) 'Obtenemos el indice del CLV que ha sido pulsado
    Dim pnl As B4XView = xCLV.GetPanel(index) 'Obtenemos el panel sobre el que están los botones
    For Each v As B4XView In pnl.GetAllViewsRecursive 'Recorremos todas las vistas del panel...

Filippo

Expert
Licensed User
Longtime User
This has nothing to do with xCustomListview.
Create a layout with the 3 buttons and the necessary events and add it to an xCustomListview. That's all you have to do.
 
Upvote 0

josejad

Expert
Licensed User
Longtime User
Hola:

Descárgate el ejemplo del xCustomListView y échale un vistazo al código.

Te adjunto un ejemplo rápido y simple, lo principal está en:

B4X:
'IMPORTANTE, EN EL VISUAL DESIGNER TIENES QUE CAMBIAR EL NOMBRE DE TODOS LOS EVENTOS PARA QUE SEAN EL MISMO, NO Button1_Click, Button2_Click
Private Sub Button_Click 'Los eventos de todos los botones deben llamarse Button
    Dim button As B4XView = Sender 'Obtenemos el botón que ha llamado al evento
    Dim index As Int = xCLV.GetItemFromView(Sender) 'Obtenemos el indice del CLV que ha sido pulsado
    Dim pnl As B4XView = xCLV.GetPanel(index) 'Obtenemos el panel sobre el que están los botones
    For Each v As B4XView In pnl.GetAllViewsRecursive 'Recorremos todas las vistas del panel
        If v.Color = xui.Color_Red And v Is Button Then 'comprobamos que solo sean botones
            v.Color = xui.Color_White
            v.Text = "Text"
        End If
    Next
    button.Color = xui.Color_Red
    button.Text = "click aquí"
End Sub
 

Attachments

  • TestxCLV.zip
    16.5 KB · Views: 25
Last edited:
Upvote 1
Solution
Muchas gracias @josejad lo voy a probar luego.
 
Upvote 0

Hackito

Member
Hola, yo lo haría de esta forma
 

Attachments

  • BotonesX.zip
    12.6 KB · Views: 23
Upvote 0
Muchas gracias @josejad, era lo que precisamente necesitaba.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…