fchirico
Member
Estimados,
En un activity que tiene un TabHost (tiene 5 Tab), en el TAB 5 quiero un ScrollView y dentro de él quiero generar LABELS y EDITTEX por código ya que la cantidad a generar de estos controles depende de los registros que tenga cargado en memoria.
Pude lograr generar estos controles, pero si cambio de Tab se siguen viendo, por lo que supongo que es como que estos controles están en el Activity y no en el ScrollView del Tab 5.
Les paso el código:
Genero los Tabs
En el TAB 5 (Case 4) ejeccuto el SUB 5 “Proc_Page5” el cual genera los controles EDITTEXT y LABELS
Y este es el SUB “Proc_Page5”
Intenté ser lo más claro que puede en la explicación.
Por favor me pueden decir qué estoy haciendo mal?
En un activity que tiene un TabHost (tiene 5 Tab), en el TAB 5 quiero un ScrollView y dentro de él quiero generar LABELS y EDITTEX por código ya que la cantidad a generar de estos controles depende de los registros que tenga cargado en memoria.
Pude lograr generar estos controles, pero si cambio de Tab se siguen viendo, por lo que supongo que es como que estos controles están en el Activity y no en el ScrollView del Tab 5.
Les paso el código:
Genero los Tabs
B4X:
Sub Activity_Create(FirstTime As Boolean)
'uso la clase SearchView para seleccionar el CLIENTE y luego el PRODUCTO
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("CargaDePedidos")
Activity.Title="9-Carga Ped.Vta. " & Application.LabelName
'Dim bmp1, bmp2 As Bitmap
'bmp1 = LoadBitmap(File.DirAssets, "ic.png")
'bmp2 = LoadBitmap(File.DirAssets, "ic_selected.png")
'TabHost1.AddTabWithIcon ("Name", bmp1, bmp2, "page1") 'load the layout file of each page
TabHost1.AddTab("Cliente","page1") 'load the layout file of each page
TabHost1.AddTab("Cabecera", "page2")
TabHost1.AddTab("Producto", "page3")
TabHost1.AddTab("Detalle", "page4")
TabHost1.AddTab("Pedido", "page5")
En el TAB 5 (Case 4) ejeccuto el SUB 5 “Proc_Page5” el cual genera los controles EDITTEXT y LABELS
B4X:
Sub TabHost1_TabChanged
'Activity.Title = "Current Tab = " & TabHost1.CurrentTab
Select TabHost1.CurrentTab
Case 0
'Busca Cliente
Case 1
'Page 2 - Datos de Cabecera del Pedido
If nCambioCliente = 1 Then
'Cargo los datos del cliente de la SA1 y ZZX
nCambioCliente = 0
spn_canales.Clear
edt_MensajeFac.Text = ""
Wait For (Proc_Page2) complete (succes As Boolean)
If succes = False Then
Return
End If
End If
Case 2
'Busca Producto
Case 3
'Traigo el precio de venta del producto seleccionado (DA1)
'e ingreso la CANTIDAD y DTO del producto
If nCambioProducto = 1 Then
'si seleccioné un producto entonces recupero el precio, sino no
nCambioProducto = 0
Wait For (Proc_Page4) complete (succes As Boolean)
If succes = False Then
Return
End If
End If
Case 4
'Mostrar el pedido cargado, se puede editar o borrar una linea
Proc_Page5
End Select
End Sub
Y este es el SUB “Proc_Page5”
B4X:
Sub Proc_Page5
'Recorro la lista de productos cargados y genero los controles EDITTEXT para editarlos
Dim lbl_CodigoProducto(nIndiceLineaPedido) As Label
Dim lbl_DescripProd(nIndiceLineaPedido) As Label
Dim Edit_Cant(nIndiceLineaPedido) As EditText
Dim Edit_DtoLin(nIndiceLineaPedido) As EditText
'AddView (View As android.view.View, Left As Int, Top As Int, Width As Int, Height As Int)
sv_LinPed.Initialize(90%y) 'Alto/Height previsto para el svMenu
Activity.AddView(sv_LinPed,1%x,10%y,98%x,90%y) 'Hacemos que el scrollview ocupe el 100% de la pantalla
p_LinPed.Initialize("")
sv_LinPed.Panel.AddView(p_LinPed,2%x,11%y,97%x,89%y)
Dim i As Int
vY_LinPed = 4%x
For i = 0 To nIndiceLineaPedido - 1
Log(i & ") --> " & User4(i).LinPed_CodProd)
Log(i & ") --> " & User4(i).LinPed_Cantidad)
Log(i & ") --> " & User4(i).LinPed_DtoLin)
Log("----------------------")
lbl_CodigoProducto(i).Initialize("lbl_CodigoProducto")
lbl_CodigoProducto(i).TextSize = 10
sv_LinPed.Panel.AddView(lbl_CodigoProducto(i),3%x,vY_LinPed,30%x,5%y)
lbl_CodigoProducto(i).Tag = i + 1
lbl_CodigoProducto(i).Text = User4(i).LinPed_CodProd
lbl_DescripProd(i).Initialize("lbl_DescripProd")
lbl_DescripProd(i).TextSize = 10
sv_LinPed.Panel.AddView(lbl_DescripProd(i),30%x,vY_LinPed,60%x,5%y)
lbl_DescripProd(i).Tag = i + 1
lbl_DescripProd(i).Text = User4(i).LinPed_DescriPro
Edit_Cant(i).Initialize("Edit_Cant")
Edit_Cant(i).TextSize = 12
Edit_Cant(i).InputType = Edit_Cant(i).INPUT_TYPE_NUMBERS
sv_LinPed.Panel.AddView(Edit_Cant(i),3%x,vY_LinPed + 1,20%x,10%y)
Edit_Cant(i).Tag = i + 1
Edit_Cant(i).Text = NumberFormat(Round2((User4(i).LinPed_Cantidad),0),1,0)
Edit_DtoLin(i).Initialize("Edit_DtoLin")
Edit_DtoLin(i).TextSize = 12
Edit_DtoLin(i).InputType = Edit_DtoLin(i).INPUT_TYPE_DECIMAL_NUMBERS
sv_LinPed.Panel.AddView(Edit_DtoLin(i),30%x,vY_LinPed + 1,20%x,10%y)
Edit_DtoLin(i).Tag = i + 1
Edit_DtoLin(i).Text = User4(i).LinPed_DtoLin
vY_LinPed = vY_LinPed + 14%x
'Ajustamos el alto del panel del scroll view para que se vea todo
'svMenu.Panel.Height = vY
Next
End Sub
Intenté ser lo más claro que puede en la explicación.
Por favor me pueden decir qué estoy haciendo mal?