Spanish Como se definen de manera dinámica varios checks ?

Ecoleo

Member
Licensed User
Longtime User
me surge otro problema, leo de una tabla unos valores que corresponden a una cadena de texto y a un valor booleano, hasta aquí bien, el problema aparece cuando quiero enseñar unos Checks con su cadena de texto y su valor checked true ó false según el caso , dentro de un list que está en un scrollview y me estoy liando porque NO se donde me equivoco , pero a pesar de que la consulta sql que hago a la tabla, me trae los datos que quirero, luego no los veo en pantalla.
este es el codigo
defino las variables
B4X:
   Dim scvIngred As ScrollView
   Dim lstChecks As List
    Dim height As Int                 :height = 50dip
en Activity.create
B4X:
scvIngred.Initialize(0)
   pnl=scvIngred.Panel
   Panel_ingredientes.AddView(scvIngred,0,35,200,300)
   lstChecks.Initialize
   scvIngred.Color=Colors.White
y este es el que busca en la tabla y NO enseña ningun check
B4X:
Panel_ingredientes.Visible=True
Panel3.Visible=True
Panel2.Visible=False
Panel1.Visible=False
pnl.Visible=True
' busco los ingredientes
crFoto = SQL1.ExecQuery("SELECT * FROM Ingre_Arti where Id_Articulo=" & cod_art & "; ")
Dim e As Int
For e =0 To crFoto.RowCount-1
   crFoto.Position=e
   'nombreFoto=crFoto.GetString("Foto_peq")
   Dim chk As CheckBox
   chk.Initialize("")
   chk.Text=crFoto.GetString("Ingrediente")
   lstChecks.Add(chk)
   If crFoto.GetInt("Basico")=1 Then
      chk.Checked=True
   Else
      chk.Checked=False
   End If
   'pnl.AddView(chk, 0, height * (e - 1), 80dip, height)
   pnl.AddView(chk,10,height,80dip,30)
   height=height+30
Next

hice un print/screen para subir una imagen de como queda, pero NO se como subirla, seguro que ayudaria a entender mi problema.
 

joseluis

Active Member
Licensed User
Longtime User
Para subir la imagen es en la página de edición avanzada, en el botón [manage attachments] de abajo, y en la ventana que se abre [seleccionar archivo] y [upload]. Debería estar en jpg y tener un tamaño inferior a 100k para que no te la destroce.

También puedes subir la imagen a un sitio de alojamiento como imgur.com y la insertas con este botón
insertimage.gif
.

En cuanto a lo del código, te aconsejo que vayas paso a paso. Por ejemplo con el debugger o imprimiendo variables con Log(), y compruebes que los datos de las variables locales son los que deberían ser, en cada iteración.
 

NJDude

Expert
Licensed User
Longtime User
La manera correcta the usar SQLite:

NO
B4X:
SQL1.ExecQuery("SELECT * FROM Ingre_Arti where Id_Articulo=" & cod_art & "; ")

SI
B4X:
SQL1.ExecQuery("SELECT * FROM Ingre_Arti where Id_Articulo='" & cod_art & "'")
 

Ecoleo

Member
Licensed User
Longtime User
La manera correcta the usar SQLite:

NO
B4X:
SQL1.ExecQuery("SELECT * FROM Ingre_Arti where Id_Articulo=" & cod_art & "; ")

SI
B4X:
SQL1.ExecQuery("SELECT * FROM Ingre_Arti where Id_Articulo='" & cod_art & "'")

Gracias por tu aporte, pero yo creo que el problema NO está en la Sql, de hecho si paro el debugger, compruebo que si encuentra datos en la tabla y los lee perfectamente, lo que pasa es que después en el bucle donde le paso el valor de los campos que vienen en la sql , a los Checks, es cuando surge el problema, o NO los crea ó No los enseña ó No se donde está el error.:BangHead:

ahi va una imagen de la pantalla y como se puede comprobar a la derecha en el panel de ingredientes , tiene el fondo blanco y no hay ningún check ¿?.
 

Attachments

  • pantalla_1.jpg
    pantalla_1.jpg
    19.6 KB · Views: 299
Top