Spanish Como puede crear Views en tiempo de ejecución?

hibrid0

Active Member
Licensed User
Longtime User
Hola gente del foro, soy nuevo con B4X, y quiero crear 300 views (Label y TextBox) en tiempo de ejecución.


El codigo mas o menos es asi:
B4X:
For i = 0 To 150 -1

        'Inicia Agregar un Label
     
  labelx.Initialize("labelx")
  labelx.TextSize= 20
  labelx.Text="Un label"
pnl_formulario1.AddView(labelx, 30dip, (i*30), 200dip, 25dip)


        'Inicia Agregar un Textbox
  textbox.Initialize("labelx")
  textboxTextSize= 20
  textbox.Text="Un Textbox"

pnl_formulario1.AddView(labelx, 30dip, (i*30), 200dip, 25dip)
     


    Next

Mi pregunta es como puedo insertarle a cada view label una variable diferente?, si cada uno es el mismo, y lo mismo para textbox, necesito leer el valor que el usuario ingrese y guardarlo en una variable.
 
Last edited:

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Si quieres poner el valor de una variable puedes emplear la propiedad Tag, por ejemplo asi:

B4X:
  labelx.tag = i ' aprovechando tu bucle for next

No le des el mismo nombre de evento al label y al textbox (supongo que te refieres a EditText) para determinar quien pulsó.

Leer valor tag del label:
B4X:
Sub labelx_Click

  Dim b As label
  b=Sender
  log("Valor del tag del label pulsado" & b.Tag)

End Sub

Pasar a variable entrada EdidText (he llamado al evento IN_Texto) :
B4X:
Sub IN_Texto_TextChanged (Old As String, New As String)

   Dim b As EditText
   Dim indice As int
   b=Sender
   indice = b.Tag

   MiVariableGlobal(indice) = New ' pongo el valor introducido en el EditText

End Sub

End Sub


Puedes utilizar IN_Texto_EnterPressed para saber cuando pulsaron la tecla Enter, o IN_Texto_FocusChanged (HasFocus As Boolean) para saber cuando cogió o perdió el foco.

Saludos
 
Top