|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
  AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

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

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

40.- Crear controles mediante el código. Array de controles.
- Tutoriales. Crear controles mediante el código. Array de controles.

- Presentación.
Vamos a ver como podemos crea arrays de controles. (Ver 18.- Añadir controles mediante código)

______________________
1.- Crear controles de array mediante código.

Vamos a crear cuatro Botones y dos Etiquetas (Label) mediante código.
Fíjate que no utilizo el Designer y ni cargo el Layout. Los controles (View) se crean en el código.

 

Declaramos el array de Botones(5). Ponemos un número más de los que queremos.

Además según se van creando los Botones se establece su Propiedad Tag, que más adelante nos va a servir para reconocer a cada Botón particular.

Creamos dos etiquetas. Una arriba y otra abajo.

Cuando pulsemos cualquier Botón, obtendremos mediante Sender sus Propiedades y las asignamos a b

Según la b.Tag sabremos el Botón pulsado.

Según el número de Botón pulsamos la suma se incrementará en uno, dos, tres o cuatro.

 

Creación de cuatro Botones y dos Etiquetas mediante código. Array.
Sub Process_Globals
    
End Sub

Sub Globals
    ' Crearemos 4 botones. Debemos declarar 5
    Dim Buttons(5) As Button
    
    ' Crearemos 2 etiquetas (Label)
    Dim etiqueta, etiqueta2 As Label
    
    Dim suma As Int
    suma = 0
    
End Sub

Sub Activity_Create(FirstTime As Boolean)

    
    Dim ancho, alto, offsetY As Int
    ancho = 80dip
    alto = 60dip

        For y = 1 To 4
            Dim b As Button
            b.Initialize("Button") 
            b.TextSize = 30
            b.Text = y
            b.Tag = y
            Activity.AddView(b, 20, y * (alto + 10dip), ancho, alto)
            Buttons(y) = b 
        Next
    
    ' Los View cuando se crean en el código hay que 
    ' Iniciarlos y luego Añadirlos al Activiy
    etiqueta.Initialize("etiqueta")
    etiqueta.TextSize = 8
    etiqueta.TextColor = Colors.White
    Activity.AddView(Etiqueta, 20dip, 10dip, 200dip, 400dip)
    
    etiqueta2.Initialize("etiqueta2")
    etiqueta2.Color=Colors.Blue
    etiqueta2.Gravity = Gravity.CENTER
    etiqueta2.Text="SUMATORIO"
    Activity.AddView(etiqueta2, 80, 550, 50%x, 20%y)
    

End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub Button_Click
    Dim b As Button
    b = Sender
    
    etiqueta.Text = "Boton pulsado: " & b
    
    suma = suma + b.Tag
    etiqueta2.Text = suma
    
    ' Cada vez que se pulsa un Botón se activa esta Subrutina.
    ' b nos dice que botón ha sido pulsado.
    ' b nos indica las Propiedades del Botón.
    ' Utilizamos la Propiedad b.Tag
    ' Dependiendo del Tag, se sumarán incrementos de uno, dos, tres o cuatro.
    
    ' En etiqueta obtenemos el valor de las Propiedades del Botón pulsado.
    ' b = Sender, b obtiene las Propiedades del Botón pulsado.
    ' En etiqueta2 obtenemos la suma.
    
End Sub






 

 

 

 


______________________

2.- Crear controles de array mediante código. Dos dimensiones.

Vamos a crear nueve Botones y dos Etiquetas (Label) mediante código.
Fíjate que no utilizo el Designer y ni cargo el Layout. Los controles (View) se crean en el código.

 

Declaramos el array de Botones(4,4). Ponemos un número más de los que queremos.

Además según se van creando los Botones se establece su Propiedad Tag, que más adelante nos va a servir para reconocer a cada Botón particular.

Creamos dos etiquetas. Una arriba y otra abajo.

Cuando pulsemos cualquier Botón, obtendremos mediante Sender sus Propiedades y las asignamos a b

Según la b.Tag sabremos el Botón pulsado.

Según el número de Botón pulsamos la suma se incrementará en uno, dos, tres, cuatro...

 

Creación de nueve Botones y dos Etiquetas mediante código. Array de dos dimensiones.
Sub Process_Globals
    ' Juan Antonio Villalpando
    ' juana1991@yahoo.com
End Sub

Sub Globals
    ' Crearemos 9 botones. Debemos declarar 4 x 4
    Dim Buttons(4,4) As Button
    
    ' Crearemos 2 etiquetas (Label)
    Dim etiqueta, etiqueta2 As Label
    
    Dim suma As Int
    suma = 0
    Dim numero_boton As Int
    numero_boton = 0
    
End Sub

Sub Activity_Create(FirstTime As Boolean)


    Dim ancho, alto As Int
    ancho = 80dip
    alto = 60dip
    
     For y = 1 To 3
        For x = 1 To 3
            Dim b As Button
            numero_boton = numero_boton + 1
            b.Initialize("Button") 
            b.TextSize = 30
            b.Text = numero_boton
            b.Tag = numero_boton
            ' El -80 es para que salga la primera columna más a la izquierda.
            Activity.AddView(b, -80 + x * (ancho + 10dip), y * (alto + 10dip), ancho, alto)
            Buttons(x, y) = b 
        Next
    Next
    
    ' Los View cuando se crean en el código hay que 
    ' Iniciarlos y luego Añadirlos al Activiy
    etiqueta.Initialize("etiqueta")
    etiqueta.TextSize = 8
    etiqueta.TextColor = Colors.White
    Activity.AddView(Etiqueta, 20dip, 10dip, 200dip, 400dip)
    
    etiqueta2.Initialize("etiqueta2")
    etiqueta2.Color=Colors.Blue
    etiqueta2.Gravity = Gravity.CENTER
    etiqueta2.Text="SUMATORIO"
    Activity.AddView(etiqueta2, 80, 550, 50%x, 20%y)
    

End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub Button_Click
    Dim b As Button
    b = Sender
    
    etiqueta.Text = "Boton pulsado: " & b
    
    suma = suma + b.Tag
    etiqueta2.Text = suma
    
    ' Cada vez que se pulsa un Botón se activa esta Subrutina.
    ' b nos dice que botón ha sido pulsado.
    ' b nos indica las Propiedades del Botón.
    ' Utilizamos la Propiedad b.Tag
    ' Dependiendo del Tag, se sumarán incrementos de uno, dos, tres o cuatro.
    
    ' En etiqueta obtenemos el valor de las Propiedades del Botón pulsado.
    ' b = Sender, b obtiene las Propiedades del Botón pulsado.
    ' En etiqueta2 obtenemos la suma.
    
End Sub






 

 

 

 

 

 

 



En la tabla inferior muestro el código para la utilización del Botón pulsado, según el Botón pulsado se realizara una parte del Case.
Puedes substituir la parte del...

Sub Button_Click

End Sub

...de arriba con el código de la tabla de abajo.

Código según el Botón pulsado.
Sub Button_Click
    Dim b As Button
    b = Sender
    
    Select b.Tag
Case 1
' Aquí ponemos el código a realizar cuando pulsemos el botón 1
 
   etiqueta.Text = "Botón 1"
  
   Msgbox("Has pulsado el Botón 1","Pulsado")
  
Case 2
' Aquí ponemos el código a realizar cuando pulsemos el botón 2
 
   etiqueta.Text = "Botón 2"
  
   Msgbox("Has pulsado el Botón 2","Pulsado")

Case 3
' Aquí ponemos el código a realizar cuando pulsemos el botón 3
 
   etiqueta.Text = "Botón 3"
  
   Msgbox("Has pulsado el Botón 3","Pulsado")

Case 4
' Aquí ponemos el código a realizar cuando pulsemos el botón 4
 
   etiqueta.Text = "Botón 4"
  
   Msgbox("Has pulsado el Botón 4","Pulsado")

Case 5
' Aquí ponemos el código a realizar cuando pulsemos el botón 5
 
   etiqueta.Text = "Botón 5"
  
   Msgbox("Has pulsado el Botón 5","Pulsado")

Case 6
' Aquí ponemos el código a realizar cuando pulsemos el botón 6
 
   etiqueta.Text = "Botón 6"
  
   Msgbox("Has pulsado el Botón 6","Pulsado")

Case 7
' Aquí ponemos el código a realizar cuando pulsemos el botón 7 etiqueta.Text = "Botón 17" Msgbox("Has pulsado el Botón 7","Pulsado") Case 8 ' Aquí ponemos el código a realizar cuando pulsemos el botón 8 etiqueta.Text = "Botón 8" Msgbox("Has pulsado el Botón 8","Pulsado") Case 9
' Aquí ponemos el código a realizar cuando pulsemos el botón 9
etiqueta.Text = "Botón 9" Msgbox("Has pulsado el Botón 9","Pulsado") Case Else ' Aquí ponemos el código que realizará cuando no se pulse ningún botón
' En este caso no es operativo esta parte del código
etiqueta.Text = "Ningún Botón" Msgbox("Ningún Botón Pulsado","No Pulsado") End Select End Sub

______________________

3.- Otra forma de crear arrays de controles.

Vamos a crear un Botón y tres Etiquetas (Label) mediante código.
Fíjate que no utilizo el Designer y ni cargo el Layout. Los controles (View) se crean en el código.

 

' Crearemos 3 etiquetas (Label)
Dim etiqueta1, etiqueta2, etiqueta3 As Label

' Crearemos un array de etiquetas
Dim etiquetas() As Label

' Aquí se crea el array de las tres etiquetas
etiquetas = Array As Label(etiqueta1, etiqueta2, etiqueta3)

' Podemos utilizar cada etiqueta por su índice de array
etiquetas(x).Text = suma

 

Otra forma de trabajar con Arrays.
Sub Process_Globals
    ' Juan Antonio Villalpando
    ' juana1991@yahoo.com
End Sub

Sub Globals
    ' Crearemos 1 Botón
    Dim boton As Button
    
    ' Crearemos 3 etiquetas (Label)
    Dim etiqueta1, etiqueta2, etiqueta3 As Label
    
    ' Crearemos un array de etiquetas
    Dim etiquetas() As Label
    
    Dim suma As Int
    suma = 0
    Dim x As Int
    x = 0
    
    
End Sub

Sub Activity_Create(FirstTime As Boolean)

    
    ' Los View cuando se crean en el código hay que 
    ' Iniciarlos y luego Añadirlos al Activiy
    
    boton.Initialize("boton")
    boton.Text = "Pulsa"
    Activity.AddView(boton, 0, 40, 100%x, 10%y)

    etiqueta1.Initialize("etiqueta1")
    etiqueta1.TextSize = 20
    etiqueta1.Color=Colors.Red
    etiqueta1.Gravity = Gravity.CENTER
    etiqueta1.Text = "Uno"
    Activity.AddView(etiqueta1, 20dip, 200dip, 200dip, 40dip)
    
    etiqueta2.Initialize("etiqueta2")
    etiqueta2.TextSize = 20
    etiqueta2.Color = Colors.Green
    etiqueta2.Gravity = Gravity.CENTER
    etiqueta2.Text = "Dos"
    Activity.AddView(etiqueta2, 20dip, 250dip, 200dip, 40dip)
    
    etiqueta3.Initialize("etiqueta3")
    etiqueta3.TextSize = 20
    etiqueta3.Color = Colors.Blue
    etiqueta3.Gravity = Gravity.CENTER
    etiqueta3.Text = "Tres"
    Activity.AddView(etiqueta3, 20dip, 300dip, 200dip, 40dip)
    
    ' Aquí se crea el array de las tres etiquetas
    etiquetas = Array As Label(etiqueta1, etiqueta2, etiqueta3)
    
End Sub

Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub Boton_Click
    
    If x = 3 Then x = 0
    ' Podemos utilizar cada etiqueta por su índice de array
    etiquetas(x).Text = suma
    x = x + 1
    suma = suma + 1
    
End Sub
        






 

 

 

 

 

 

 

 


______________________

4.- Grupo de 9 TextView en 3 x 3.

Ahora tenemos 9 TextView en 3 x 3, en dos dimensiones, parecido al ejemplo 2 que hemos visto anteriormente.

Una subrutina cambia sus textos.

Otra forma de trabajar con Arrays.

Sub Process_Globals
' Juan Antonio Villalpando ' juana1991@yahoo.com End Sub Sub Globals ' Crearemos 9 etiquetas. Debemos declarar 4 x 4 Dim Labels(4, 4) As Label Dim numero_label As Int numero_label = 0 End Sub Sub Activity_Create(FirstTime As Boolean) ' Creamos mediante código 9 etiquetas en grupos de 3 Dim ancho, alto As Int ancho = 80dip alto = 60dip For y = 1 To 3 For x = 1 To 3 Dim b As Label numero_label = numero_label + 1 b.Initialize("Label") b.TextSize = 10 b.Text = numero_label b.Tag = numero_label ' El -80 es para que salga la primera columna más a la izquierda. Activity.AddView(b, -80 + x * (ancho + 10dip), y * (alto + 10dip), ancho, alto) Labels(x, y) = b Next Next ' Activity.LoadLayout("layout") Cambia End Sub Sub Cambia For x = 1 To 3 For y = 1 To 3 Labels(x, y).Text = "-" Next Next End Sub

______________________

5.- Creación de 4 CheckBox uno debajo del otro.

4_CheckBox.
 
Sub Process_Globals
    
End Sub

Sub Globals
	' Crearemos 4 checkbox. Debemos declarar 5
	Dim CheckBox(5), bot As CheckBox

	' Crearemos 1 etiqueta (Label)
	Dim etiqueta As Label
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
 
	Dim ancho, alto As Int
	ancho = 80dip
	alto = 60dip

	For y = 1 To 4
		Dim b As CheckBox
		b.Initialize("CheckBox")
		b.TextSize = 10
		b.Text = y
		b.Tag = y
		Activity.AddView(b, 20dip, y * (alto + 10dip), ancho, alto)
		CheckBox(y) = b
	Next
    
	' Los View cuando se crean en el código hay que
	' Iniciarlos y luego Añadirlos al Activiy
	etiqueta.Initialize("etiqueta")
	etiqueta.TextSize = 14
	etiqueta.TextColor = Colors.White
	Activity.AddView(etiqueta, 20dip, 10dip, 200dip, 400dip)
    
End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub CheckBox_Click
	Dim b As CheckBox
	b = Sender
    
	etiqueta.Text = "Marcado: " & b
    
End Sub

______________________

6.- Creación de 4 CheckBox uno debajo del otro.

4_CheckBox.
 
Sub Process_Globals
    
End Sub

Sub Globals
	' Crearemos 4 checkbox. Debemos declarar 5
	Dim CheckBox(5), bot As CheckBox

	' Crearemos 1 etiqueta (Label)
	Dim etiqueta As Label
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
 
	Dim ancho, alto As Int
	ancho = 80dip
	alto = 60dip

	For y = 1 To 4
		Dim b As CheckBox
		b.Initialize("CheckBox")
		b.TextSize = 10
		b.Text = y
		b.Tag = y
		Activity.AddView(b, 20dip, y * (alto + 10dip), ancho, alto)
		CheckBox(y) = b
	Next
    
	' Los View cuando se crean en el código hay que
	' Iniciarlos y luego Añadirlos al Activiy
	etiqueta.Initialize("etiqueta")
	etiqueta.TextSize = 14
	etiqueta.TextColor = Colors.White
	Activity.AddView(etiqueta, 20dip, 10dip, 200dip, 400dip)
    
End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub CheckBox_Click
	Dim b As CheckBox
	b = Sender
    
	etiqueta.Text = "Marcado: " & b
    
End Sub
          

______________________

6.- Creación de 4 RadioButton uno debajo del otro.

4_RadioButton.
 
Sub Process_Globals
    
End Sub

Sub Globals
	' Crearemos 4 RadioButton. Debemos declarar 5
	Dim RadioButton(5), bot As RadioButton

	' Crearemos 1 etiqueta (Label)
	Dim etiqueta As Label
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
 
	Dim ancho, alto As Int
	ancho = 80dip
	alto = 60dip

	For y = 1 To 4
		Dim b As RadioButton
		b.Initialize("RadioButton")
		b.TextSize = 10
		b.Text = y
		b.Tag = y
		Activity.AddView(b, 20dip, y * (alto + 10dip), ancho, alto)
		RadioButton(y) = b
	Next
    
	' Los View cuando se crean en el código hay que
	' Iniciarlos y luego Añadirlos al Activiy
	etiqueta.Initialize("etiqueta")
	etiqueta.TextSize = 14
	etiqueta.TextColor = Colors.White
	Activity.AddView(etiqueta, 20dip, 10dip, 200dip, 400dip)
    
End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub RadioButton_Click
	Dim b As RadioButton
	b = Sender
    
	etiqueta.Text = "Marcado: " & b
    
End Sub

______________________

7.- Creación de 4 ImageView uno debajo del otro.

- Debemos poner una imagen en la carpeta File

4_ImageView.
ub Process_Globals
    
End Sub

Sub Globals
	' Crearemos 4 Imágenes. Debemos declarar 5
	Dim ImageView(4) As ImageView

	' Crearemos 1 etiqueta (Label)
	Dim etiqueta As Label
   
End Sub

Sub Activity_Create(FirstTime As Boolean)
 
	Dim ancho, alto As Int
	ancho = 80dip
	alto = 60dip

	For y = 1 To 4
		Dim b As ImageView
		b.Initialize("ImageView")
		b.Enabled = True
		b.Visible = True
		b.Tag = y	
		' b.SetLayout(X,Y,100dip,100dip)
	    b.Gravity = Gravity.FILL
		b.Bitmap = LoadBitmap(File.DirAssets,"android1.gif")
		Activity.AddView(b, 20dip, y * (alto + 10dip), ancho, alto)
	Next
    
	' Los View cuando se crean en el código hay que
	' Iniciarlos y luego Añadirlos al Activiy
	etiqueta.Initialize("etiqueta")
	etiqueta.TextSize = 14
	etiqueta.TextColor = Colors.White
	Activity.AddView(etiqueta, 20dip, 10dip, 200dip, 400dip)
    
End Sub
Sub Activity_Resume
    
End Sub
Sub Activity_Pause (UserClosed As Boolean)
    
End Sub

Sub ImageView_Click
	Dim b As ImageView
	b = Sender
    
	etiqueta.Text = "Marcado: " & b
    
End Sub
          

 

______________________

- En este página de los tutoriales ponen una aplicación llamada Toolbar.zip, que presenta una sencilla pantalla con barra de herramientas.

________________________________

- 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