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

Discussion in 'Spanish Forum' started by hibrid0, Jun 4, 2015.

  1. hibrid0

    hibrid0 Active Member Licensed 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:
    Code:
    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), 200dip25dip)


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

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


        
    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: Jun 4, 2015
  2. bgsoft

    bgsoft Well-Known Member Licensed User

    Hola:

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

    Code:
    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:
    Code:
    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) :
    Code:
    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
     
    hibrid0 likes this.
Loading...