|   FOROS      |     Tutoriales    |     KIO4 |      
   Inicio B4A (Basic4Android) App inventor 2 Arduino
   Elastix - VoIP Cosas de Windows Webs interesantes  Telecomunicaciones

 


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

Nueva sección en esta web: Elastix - VoIP

¿Qué es esto?

- Monta un servidor telefónico en tu ordenador para poderte comunicar mediante tu móvil con otros móviles que estén en tu red Wifi. Parecido a Skipe o Whatsapp-teléfono, pero en este caso tú controlas al servidor.

- Si sabes abrir puertos del router, también puedes comunicarte con tu móvil de una red Wifi a teléfonos de otra red Wifi.

- También puedes comunicarte con teléfonos "normales", pero para eso necesitas un dispositivo que vale unos 60 €.

- Es muy recomendable aprender el funcionamiento de este servidor telefónico Asterisk-Elastix.

 Elastix - VoIP

 

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial                    Return to index tutorial

____________________________

Basic4Android.

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.

- 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.

Bajar Fórmulas.zip

- Por cada elección cargamos un Layout (pitagoras, triangulo, circulo, imc) en el Panel pnlPage2

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
      

________________________________

Si quieres que este tutorial se mantenga y lo actualice con más programas, escríbeme un correo a Juan Antonio: juana1991@yahoo.com

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información