Spanish [SOLUCIONADO] Capturar los valores de CheckBox

ebqlabs

Active Member
Licensed User
Hola, estoy cargando un listado en CheckBox

B4X:
Sub CgaLtaChkItmUno(datos As String)

    JsonChkImt.Initialize(datos)
  
    Dim m As Map
    m=JsonChkImt.NextObject      
    Dim data As List
    data=m.Get("data")
  
    ''Scroll_Uno      
    ScrollView1.Initialize(0)

    pnl1 = ScrollView1.Panel
    pnl1.Color = Colors.White

    Activity.AddView(ScrollView1,3.4%x, 21.5%y, 45.5%x, 65%y)

    lstChecksUno.Initialize
      
    For i = 0 To data.Size-1          
        m=data.Get(i)
      
        Dim row As Int
        row = i * 45
          
        Dim chk As CheckBox
        chk.Initialize("")
        If flg_est = "DEVOLUCIÓN" Then
            chk.Enabled = False  
        End If
        chk.Text         = m.Get("tia_des_itm")
      
      
        chk.TextColor = Colors.Black
        lstChecksUno.Add(chk)
        pnl1.AddView(chk, 0, row, 320dip, height)
    Next
    pnl1.Height = lstChecksUno.Size * height
    ScrollView1.Visible = False
    pnl1.Visible= False   
  
  
  
End Sub


Necesito capturar el valor de los datos que están chequeados, tengo este botón que es dar al grabar.


B4X:
Sub btnGrbAct_Click  
    For i = 0 To lstChecksUno.Size - 1
        Dim chk As CheckBox
        chk = lstChecksUno.Get(i)
        If (chk.Checked = True) Then
        Msgbox(chk,"")
        End If           
    Next
End Sub


me captura el valor, pero al mostrar el Msgbox me muestra esto.
B4X:
(CHECKBOX): Left= 0, top = 0 . . . ..   Text = Valor

necesito capturar el valor del text

saludoss
 

JordiCP

Expert
Licensed User
Longtime User
chk es el objecto "entero", con todas sus propiedades. Tienes que acceder a los campos que te interesan

B4X:
MsgBox(chk.Text,"")
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Con eso que has puesto, aunque cojas el valor del text te devolverá "" (cadena vacia), ya que lo estas creando, y aunque le llames igual no vale para coger los valores.

Cuando lo crees, añadelo a un list y luego puedes leer o modificar lo que quieras.

B4X:
Sub Globals
  Dim ListaObjeto As List
' .......................
' .......................

Sub Activity_Create(FirstTime As Boolean)
ListaObjeto.Initialize
' .......................
' .......................


' parte de tu codigo
Sub CgaLtaChkItmUno(datos AsString)

For i = 0To data.Size-1
m=data.Get(i)
Dim row As Int
row = i * 45
Dim chk AsCheckBox
chk.Initialize("")If flg_est = "DEVOLUCIÓN"Then
chk.Enabled = False EndIf
chk.Text = m.Get("tia_des_itm")
ListaObjeto.Add(chk) ' -------------- añadir esto --------------
' .......................
' .......................
' .......................

' para leer luego el valor del text o lo que quieras

Sub btnGrbAct_Click
  For i = 0 To lstChecksUno.Size - 1
    Dim chk As CheckBox
    chk.Initialize("")
    chk= ListaObjeto.Get(i)

   If chk.Checked = True Then
     Msgbox(chk.text,"")
   End If
Next
End Sub

Saludos
 
Last edited:

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

No vi que habias creado una lista :rolleyes:

Saludos
 

rscheel

Well-Known Member
Licensed User
Longtime User
Estimado, podría colocar el
[SOLUCIONADO]
Al principio del encabezado, no al final, así seguimos una linea y se distingue mejor.

Saludos.
 
Top