B4A en español - Juan Antonio Villalpando
(BASIC4Android)
-- Tutorial de B4A --
Volver al índice del tutorial
____________________________
26.- ListView con dos Paneles y varios Layout. Formulario matemático.
- Tutoriales. ListView, dos paneles y varios Layout.
- Presentación.
________________
1.- Fórmulas
- Bajar Fórmulas.zip
- Este programa es parecido al anterior, presenta un listado de fórmulas mediante un Listview. Cuando elegimos una, entramos en otro panel donde ponemos los datos requeridos en cada expresión.
- Dependiendo de la elección, se cargará el layout correspondiente.
____________________________
- Designer. Layout.
- Creamos dos Paneles: pnlPage1 y pnlPage2, mediante código. (por eso no carga ningún Layout en el inicio).
- En el primer Panel creamos un ListView con scroll mediante código.
- En el segundo Panel cargamos el layout: correspondiente a la elección.
- Los Layout son: pitagoras, triangulo, circulo, imc. Todos se cargan en el Panel pnlPage2, en el momento de la elección.
"pitagoras"
Label1, Label2, lbl_Hipotenusa
edtcat_1, edtcat_2
btn_Pitagoras, btnvolver
|
"triangulo"
Label1, Label2, lbl_area
edttri_1, edttri_2
btn_Triangulo, btnvolver
|
"circulo"
Label1, lbl_area, lbl_longitud
edtcir_1
btn_Circulo, btnvolver |
"imc"
Label1, Label2, lbl_imc
edt_peso, edt_altura
btn_IMC, btnvolver |
Designer
|
- Mediante un Listview con scroll elegimos una fórmula.
|
- Por cada elección cargamos un Layout (pitagoras, triangulo, circulo, imc) en el Panel pnlPage2 |
____________________________
- Código (copia y pega).
Código del programa en Basic4Android
|
' Programa realizado por Juan Antonio Villalpando
' juana@yahoo.com
' 19 de mayo de 2012
' Fórmulas matemáticas
Sub Process_Globals
End Sub
Sub Globals
Dim ListView1 As ListView
Dim pnlPage1, pnlPage2 As Panel
' Pitagoras
Dim edtcat_1, edtcat_2 As EditText
Dim lbl_Hipotenusa As Label
Dim a, b, hipotenusa As Float
' Triangulo
Dim edttri_1, edttri_2 As EditText
Dim lbl_area As Label
Dim area As Float
' Círculo
Dim edtcir_1 As EditText
Dim lbl_area, lbl_longitud As Label
Dim area, longitud As Float
' IMC
Dim edt_peso, edt_altura As EditText
Dim lbl_imc As Label
Dim peso, altura, imc As Float
End Sub
Sub Activity_Create(FirstTime As Boolean)
' Creación del Panel pnlPage1 mediante código.
pnlPage1.Initialize("")
Activity.AddView(pnlPage1,0,0,100%x,100%y) '
pnlPage1.Visible=True
' Creación del ListView dentro del Panel pnlPage1
ListView1.Initialize("ListView1")
Dim GD As GradientDrawable
GD.Initialize("TR_BL", Array As Int(Colors.Red, Colors.Green))
Activity.Background = GD
ListView1.ScrollingBackgroundColor = Colors.Transparent
ListView1.SingleLineLayout.ItemHeight = 80dip
ListView1.SingleLineLayout.Label.TextSize = 15
ListView1.SingleLineLayout.Label.TextColor = Colors.Black
ListView1.SingleLineLayout.Label.Gravity = Gravity.CENTER
ListView1.FastScrollEnabled = True
' Elementos del ListView
Listview1.AddSingleLine("Teorema de Pitágoras")
Listview1.AddSingleLine("Área del triángulo")
Listview1.AddSingleLine("Área del círculo" & CRLF & "Longitud de la circunferencia")
Listview1.AddSingleLine("Índice de masa corporal" & CRLF & "IMC")
' Se continuará poniendo más Listview1.AddSingleLine para las distintas fórmulas
' ....................................
Activity.AddView(ListView1, 0, 0, 100%x, 100%y)
Activity.Title="Formulario. Juan A. Villalpando"
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
Activity.Title = Position & " - " & Value
pnlPage2.Initialize("")
Select Position
Case 0
pnlPage2.LoadLayout("pitagoras")
Case 1
pnlPage2.LoadLayout("triangulo")
Case 2
pnlPage2.LoadLayout("circulo")
Case 3
pnlPage2.LoadLayout("imc")
End Select
Activity.AddView(pnlPage2,0,0,100%x,100%y)
pnlPage1.Visible = False
pnlPage2.Visible = True
End Sub
' CÁLCULOS
' PITAGORAS
Sub btn_Pitagoras_Click
a = edtcat_1.Text
b = edtcat_2.Text
hipotenusa = Sqrt(a*a + b*b)
lbl_Hipotenusa.Text = "Hipotenusa " & hipotenusa
End Sub
' TRIÄNGULO
Sub btn_Triangulo_Click
a = edttri_1.Text
b = edttri_2.Text
area = (b * a) / 2
lbl_area.Text = "Área: " & area
End Sub
' CÍRCULO
Sub btn_Circulo_Click
a = edtcir_1.Text
area = 3.1416 * a * a
longitud = 2 * 3.1416 * a
lbl_area.Text = "Área: " & area
lbl_longitud.Text = "Longitud: " & longitud
End Sub
' IMC
Sub btn_IMC_Click
peso = edt_peso.Text
altura = edt_altura.Text / 100
imc = peso / (altura * altura)
lbl_imc.Text = "IMC: " & imc
End Sub
' Borrado y vuelta al Panel1
Sub btnvolver_Click
pnlPage2.Visible = False
pnlPage1.Visible = True
Activity.Title="Formulario. Juan A. Villalpando"
End Sub
|
_______________________________________________
2.- ListView para listar y ver imágenes.
Otro ejemplo de ListView, este sacado directamente de los tutoriales.
- Entras en: directamente de los tutoriales. y bajas el código.
- Copias y pegas el código en un nuevo proyecto. No hace falta Layout, ya que los Views se cargan en el código.
- En la carpeta Files del proyecto guardas algunas imágenes. Aquí tienes algunas como ejemplo: imagenes.zip
- Modifica esta línea, para que el path sea la carpeta Files.
' path1 = root & " /DCIM/Camera "
path1 = File.DirAssets
_________________________
Saldrá un listado archivos que se encuentran en la carpeta Files y al pulsar sobre el nombre de alguna imagen, ésta saldrá en un ImageView situado en la parte de abajo. |
|
_______________________________________________
3.- Otro ejemplo de ListView.
Como en el ejemplo anterior, remito al foro oficial para otro código sobre ListView. En este caso recomiendo echar un vistazo a ejemplo TestList3.zip que se encuentra en esta página del foro.
- El código lee los datos de un archivo csv y los presenta en un ListView1.
- Si pulsamos una línea del ListView1, podemos añadir esa línea a otro ListView3
- El ListView3 lo podemos guardar.
(En el programa no se distingue bien el ListView1 y el ListView3.)
El programa toma el archivo book.csv que se encuentra en la carpeta Files del proyecto y la copia en DirInternal (esta operación solo lo hace la primera vez que funciona el proyecto), las demás veces toma el archivo book.csv de DirInternal
Cuando pulsamos el botón "Save" se guarda el contenido de ListView3 en un archivo en DirInternal, con el nombre de archivo que hayamos elegidos.
DirInternal se encuentra en...
/data/data/adr.testlist/files |
|
_______________________________________________
4.- Más ejemplos de ListView.
También en los foros encontramos este interesante proyecto.
Escribimos algo en un casillero y al pulsar el Botón se añade a un ListView.
Lo encontramos en los foros con el nombre de edittext2.zip
|
|
_______________________________________________
5.- Otro ejemplo más de ListView.
También en los foros encontramos esta interesante propuesta de ListView.
En este caso utiliza un Map.
Un Map es como una lista que puede utilizar varias parejas de Clave=Valor.
Ponemos en cada línea del ListView una llamada a la variable Map y podemos obtener distintas informaciones en cada una de esas llamadas.
La aplicación se llama: listviewtest.zip y la puedes obtener en esta página del foro.
En el ejemplo del foro el resultado se obtiene en la parte del Logs.
|
|
_______________________________________________
6.- Un ejemplo más de ListView.
En este caso se trata de presentar en el ListView un listado de nuestros países y banderas.
Cada parte del listado consta de dos elementos y una imagen:
listado.AddTwoLinesAndBitmap("España", "ES",Bitmap1)
Al pulsar sobre un país, se ocultará el ListView y se visualizará un Panel.
El en Panel se presentará la web de Wikipedia de ese país (tarda un poco en cargar).
'panelg.LoadLayout("espana") WebView1.LoadUrl("http://es.wikipedia.org/wiki/Espa%C3%B1a").
También se podría cargar un Layout en el Panel o un crear un nuevo Activity.
Se puede volver a la página principal pulsando un botón o mediante el botón del menú.
Todos los Views se crean por código, no tiene Layout.
Las imagenes de las banderas se encuentran en la carpeta Files, es conveniente integrarlas en el proyecto mediante la pestaña Files y el botón Add Files (situado abajo-derecha del IDE Basic4Android).
|
- Bajar ListView_2.zip
|
Código del programa en Basic4Android
|
#Region Project Attributes
#ApplicationLabel: Nuestros países
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#End Region
Sub Process_Globals
' Programa realizado por Juan Antonio Villalpando
' juana@yahoo.com
' diciembre 2013
End Sub
Sub Globals
Dim etiqueta As Label
Dim panelg As Panel
Dim boton1 As Button
Dim listado As ListView
Dim WebView1 As WebView
Dim Bitmap1, Bitmap2,Bitmap3,Bitmap4,Bitmap5,Bitmap6,Bitmap7,Bitmap8 As Bitmap
Dim Bitmap9, Bitmap10,Bitmap11,Bitmap12,Bitmap13,Bitmap14,Bitmap15,Bitmap16 As Bitmap
Dim Bitmap17, Bitmap18,Bitmap19,Bitmap20,Bitmap21,Bitmap22 As Bitmap
End Sub
Sub Activity_Create(FirstTime As Boolean)
' Crea etiqueta (Label)
etiqueta.Initialize("etiqueta")
etiqueta.TextSize = 20
etiqueta.TextColor = Colors.Yellow
etiqueta.Color = Colors.Red
etiqueta.Gravity = Gravity.CENTER
etiqueta.Text = "Label es Etiqueta"
Activity.AddView(etiqueta, 0dip, 0dip, 100%x, 30dip)
' Crea panelg (Panel)
panelg.Initialize("panelg")
panelg.Color=Colors.White
Activity.AddView(panelg, 0dip, 30dip, 100%x, 420dip)
' Crea un WebView1 dentro del Panelg
WebView1.Initialize("WebView1")
panelg.AddView(WebView1, 0dip, 30dip, 100%x, 100%y)
' Crea un boton1 dentro del Panelg
boton1.Initialize("boton1")
boton1.TextColor = Colors.Black
boton1.Text = "Volver al listado."
panelg.AddView(boton1, 0dip, 0dip, 100%x, 9%y)
Bitmap1.Initialize(File.DirAssets, "espana.gif")
Bitmap2.Initialize(File.DirAssets, "argentina.gif")
Bitmap3.Initialize(File.DirAssets, "bolivia.gif")
Bitmap4.Initialize(File.DirAssets, "brasil.gif")
Bitmap5.Initialize(File.DirAssets, "chile.gif")
Bitmap6.Initialize(File.DirAssets, "colombia.gif")
Bitmap7.Initialize(File.DirAssets, "costa_rica.gif")
Bitmap8.Initialize(File.DirAssets, "cuba.gif")
Bitmap9.Initialize(File.DirAssets, "el_salvador.gif")
Bitmap10.Initialize(File.DirAssets, "ecuador.gif")
Bitmap11.Initialize(File.DirAssets, "guatemala.gif")
Bitmap12.Initialize(File.DirAssets, "honduras.gif")
Bitmap13.Initialize(File.DirAssets, "mexico.gif")
Bitmap14.Initialize(File.DirAssets, "nicaragua.gif")
Bitmap15.Initialize(File.DirAssets, "panama.gif")
Bitmap16.Initialize(File.DirAssets, "paraguay.gif")
Bitmap17.Initialize(File.DirAssets, "peru.gif")
Bitmap18.Initialize(File.DirAssets, "portugal.gif")
Bitmap19.Initialize(File.DirAssets, "puerto_rico.gif")
Bitmap20.Initialize(File.DirAssets, "r_dominicana.gif")
Bitmap21.Initialize(File.DirAssets, "uruguay.gif")
Bitmap22.Initialize(File.DirAssets, "venezuela.gif")
' Crea listado (ListView)
listado.Initialize("listado")
listado.Color=Colors.Black
listado.TwoLinesLayout.ItemHeight = 50dip
listado.TwoLinesLayout.Label.TextSize = 10dip
listado.TwoLinesLayout.Label.TextColor = Colors.Blue
listado.TwoLinesLayout.Label.Gravity = Gravity.CENTER
listado.FastScrollEnabled=True
listado.clear
listado.AddTwoLinesAndBitmap("España", "ES",Bitmap1)
listado.AddTwoLinesAndBitmap("Argentina", "AR", Bitmap2)
listado.AddTwoLinesAndBitmap("Bolivia", "BO", Bitmap3)
listado.AddTwoLinesAndBitmap("Brasil", "BR", Bitmap4)
listado.AddTwoLinesAndBitmap("Chile", "CH", Bitmap5)
listado.AddTwoLinesAndBitmap("Colombia", "CO", Bitmap6)
listado.AddTwoLinesAndBitmap("Costa Rica", "CR", Bitmap7)
listado.AddTwoLinesAndBitmap("Cuba", "CU", Bitmap8)
listado.AddTwoLinesAndBitmap("El Salvador", "SA", Bitmap9)
listado.AddTwoLinesAndBitmap("Ecuador", "EC", Bitmap10)
listado.AddTwoLinesAndBitmap("Guatemala", "GU", Bitmap11)
listado.AddTwoLinesAndBitmap("Honduras", "HO", Bitmap12)
listado.AddTwoLinesAndBitmap("México", "MX", Bitmap13)
listado.AddTwoLinesAndBitmap("Nicaragua", "NI", Bitmap14)
listado.AddTwoLinesAndBitmap("Panamá", "PN", Bitmap15)
listado.AddTwoLinesAndBitmap("Paraguay", "PA", Bitmap16)
listado.AddTwoLinesAndBitmap("Perú", "PE", Bitmap17)
listado.AddTwoLinesAndBitmap("Portugal", "PO", Bitmap18)
listado.AddTwoLinesAndBitmap("Puerto Rico", "PR", Bitmap19)
listado.AddTwoLinesAndBitmap("R. Dominicana", "DO", Bitmap20)
listado.AddTwoLinesAndBitmap("Uruguay", "UR", Bitmap21)
listado.AddTwoLinesAndBitmap("Venezuela", "VE", Bitmap22)
Activity.AddView(listado, 0dip, 30dip, 100%x, 420dip)
Activity.AddMenuItem("Volver","boton_menu")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub listado_ItemClick (Position As Int, Value As Object)
listado.Visible=False
panelg.Visible = True
etiqueta.Text = Position & "-" & Value
Select Position
Case 0
'panelg.LoadLayout("espana")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Espa%C3%B1a")
Case 1
'panelg.LoadLayout("argentina")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Argentina")
Case 2
'panelg.LoadLayout("bolivia")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Bolivia")
Case 3
'panelg.LoadLayout("brasil")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Brasil")
Case 4
'panelg.LoadLayout("chile")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Chile")
Case 5
'panelg.LoadLayout("colombia")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Colombia")
Case 6
'panelg.LoadLayout("costa_rica")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Costa_rica")
Case 7
'panelg.LoadLayout("espana")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Cuba")
Case 8
'panelg.LoadLayout("el_salvador")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/El_salvador")
Case 9
'panelg.LoadLayout("ecuador")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Ecuador")
Case 10
'panelg.LoadLayout("guatemala")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Guatemala")
Case 11
'panelg.LoadLayout("honduras")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Honduras")
Case 12
'panelg.LoadLayout("mexico")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Mexico")
Case 13
'panelg.LoadLayout("nicaragua")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Nicaragua")
Case 14
'panelg.LoadLayout("panama")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Panama")
Case 15
'panelg.LoadLayout("paraguay")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Paraguay")
Case 16
'panelg.LoadLayout("peru")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Peru")
Case 17
'panelg.LoadLayout("portugal")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Portugal")
Case 18
'panelg.LoadLayout("puerto_rico")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Puerto_Rico")
Case 19
'panelg.LoadLayout("r_dominicana")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Rep%C3%BAblica_Dominicana")
Case 20
'panelg.LoadLayout("uruguay")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Uruguay")
Case 21
'panelg.LoadLayout("venezuela")
WebView1.LoadUrl("http://es.wikipedia.org/wiki/Venezuela")
End Select
End Sub
Sub boton1_Click
etiqueta.Text = ""
panelg.Visible = False
listado.Visible = True
End Sub
Sub boton_menu_Click
etiqueta.Text = ""
panelg.Visible = False
listado.Visible = True
End Sub
|
________________________________
|