Spanish Obtener nombre del control al hacer click

Gustavo Schiffo

Member
Licensed User
Longtime User
Hola, buenos dias. Tengo un incomeniente con respecto a obtener el nombre del control cuando lo creo en tiempo de ejecucion.
Este es el codigo que crea los componentes dependiendo la cantidad de registro que obtiene con una consulta SQL.
Dicho codigo lo que muestra es un ImageView con una foto del producto y un label que contiene la descripcion.
B4X:
Case crea_controles
                Dim l,t,w,h As Int
                Dim COUNTRIES As List
                COUNTRIES = parser.NextArray 'returns a list with maps
                l = 1%x
                t = 1%y
                w = 45%x
                h = 25%y
                For i = 0 To COUNTRIES.Size -1
                    Dim m As Map
                    m = COUNTRIES.Get(i)
                    x = m.Get("id")
                    'Posicion Imagen
                    img(x).Initialize(x)
                    img(x).Gravity = Gravity.FILL
                    
                    lbl(x).Initialize(x)
                    lbl(x).TextColor = Colors.Black
                    
                    sclPrincipal.Panel.AddView(img(x),l,t,w,h)
                    sclPrincipal.Panel.AddView(lbl(x),l+w+3dip,t,w,h)
                    
                    t = t + 27%y

                Next

La duda es como hago para crear un evento CLICK por cada control que se crea, o hay otro forma mas sencilla de hacerlo?
 

IdasI4A

Active Member
Licensed User
Longtime User
Lo que puedes hacer es inicializar los img con el mismo nombre, y pones el id en el Tag por ejemplo
B4X:
x = m.Get("id")
dim img as ImageView
' lo añades al panel,....
img.Initialize("imgPaises")
img.Tag=x

Luego en el evento Click del imageview
B4X:
Private Sub imgPaises_Click
    Dim iV As ImageView
    Dim Id As Int
    
    iV=Sender
    Id=iV.tag ' Ya tiene el id de la imagen donde han hecho click'
    '
End Sub
 

TILogistic

Expert
Licensed User
Longtime User
ver:


 

DiegoSMR

New Member
Hola me pueden ayudar, tengo un problema de medidas, al hacer click en listview, me dirige a un panel, pero al momento de volver a hacer click este se multiplica y agranda a cabalidad. nosé como solucionarlo

If Value = "RIC N°01 | Empalmes" Then

'scrollview
scrollview1.Left = 0
scrollview1.Width = Activity.Width
scrollview1.Panel.LoadLayout("c1p1")
scrollview1.Panel.Height = p1.Height
scrollview1.FullScroll(False)
'menu superior
Dim bd As BitmapDrawable
bd.Initialize(LoadBitmap(File.DirAssets, "hamburger.png"))
ToolbarHelper.UpIndicatorDrawable = bd
'panel zoomimageview
p1z1.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z1.jpg"))
p1z2.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z2.jpg"))
p1z3.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z3.jpg"))
p1z4.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z4.jpg"))
p1z5.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z5.jpg"))
p1z6.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z6.jpg"))
p1z7.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z7.jpg"))
p1z8.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z8.jpg"))
p1z9.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z9.jpg"))
p1z10.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z10.jpg"))
p1z11.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z11.jpg"))
p1z12.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z12.jpg"))
p1z13.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z13.jpg"))
p1z14.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z14.jpg"))
p1z15.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z15.jpg"))
p1z16.SetBitmap(xui.LoadBitmap(File.DirAssets,"p1z16.jpg"))
End If
 

josejad

Expert
Licensed User
Longtime User
Hola:

Tu post no tiene nada que ver con este hilo, por favor:
- Crea un nuevo hilo con tu duda y un asunto que describa tu problema.
- Pon tu código entre etiquetas [code]... Tu código aquí.... [/code]
- Usa xCustomListView en vez de un scrollview, es más moderno, potente, sencillo y multiplataforma.
- Sube un pequeño ejemplo que muestre tu error, será más fácil ayudarte.

saludos,
 
Top