- Presentación.
- Bajar Activity_2.zip
- En un apartado anterior vimos cómo podemos poner varios paneles para que actuen como distintos formularios de Visual Basic. Ese efecto también lo podemos conseguir estableciendo varios Activity. Los Activity son como los Form de Visual Basic.
- Vamos a ver un ejemplo que muestra los tutoriales del sitio oficial de Basic4Android.
____________________________
- Designer. Layout.
Creación de los layout y los Activity
|
|
- Creamos una carpeta llamada Activity_dos y dentro el archivo activity_dos.b4a
- Vamos al Designer y creamos un Button1 y una Label1, lo guardamos con el nombre de layout
- Vamos a File / New y creamos un ListView1, guardamos este Designer con el nombre 2
Es decir, hemos creado dos layout, uno se llama layout y el otro 2.
- Cuando entramos en el programa se nos creó el Activity llamado Main, el principal.
Ahora vamos a crear otro Activity llamado Activity2.
Para ello vamos a Proyect / Add New Module / Activity Module
y creamos el Activity2
- Aquí tenemos los dos Activity: el Main y el Activity2.
- Tenemos dos layout (Layout y 2) y dos Activity (Main y Activity2). |
____________________________
- Código (copia y pega).
En este programa se trata de ver como una variable Global llamada result, puede pasar de un Activity a otro.
Código del programa en Basic4Android
|
' En el Main escribimos el siguente código.
' Carga el Layout perteneciente al Main.
' Si pulsamos el Button1 vamos al Activity2 StartActivity(Activity2)
' Si venimos del Activity2, se presenta en el Label1 el result del Activity2 Activity2.result
' Juan Antonio Villalpando
' juana1991@yahoo.com
Sub Process_Globals
End Sub
Sub Globals
Dim Label1 As Label
Dim Button1 As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("layout")
End Sub
Sub Activity_Resume
If Activity2.result.Length > 0 Then
Label1.Text = "You have chosen: " & Activity2.result
Else
Label1.Text = "Please press on the button and choose an item."
End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
StartActivity(Activity2)
End Sub
*********************************************************************
' En el Activity2 escribiremos:
' Declaramos una variable Global llamada results que se pueda utilicar en el Main y en el Activity2
' Carga el layout del Activity2 llamado 2
' Cuando elegimos un elemento del Listview1, su Value se asigna a la variable result y vamos al Main
Sub Process_Globals
Dim result As String
result = ""
End Sub
Sub Globals
Dim ListView1 As ListView
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("2")
For i = 1 To 100
ListView1.AddSingleLine("Item #" & i)
Next
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub ListView1_ItemClick (Position As Int, Value As Object)
result = Value 'store the value in the process global object.
StartActivity(Main) 'show the main activity again
End Sub
' El Activity_Create se ejecuta cuando arranca el programa, en nuestro caso se carga el Layout
' El Activity_Resume se ejecuta cuando regresamos al Activity después de haber ido al Activity2
|
___________________
- En este tutorial de los Foros se pueden ver otra formas de trabajar con varios Paneles y Activity.
https://www.b4x.com/android/forum/threads/different-examples-with-2-layouts.8416/#post47102
En resumen se propones varias formas:
_____________________________________________
1 Activity, 1 Layout y 2 Paneles. (ejemplo)
Los Views se ponen el su Panel correspondiente.
Para que salga un Panel u otro lo desocultamos o lo ocultamos.
Todo el código está en el Activity Main.
Sub Button1_Click
Panel1.Visible= False
Panel2.Visible= True
End Sub
Sub Button2_Click
Panel1.Visible= True
Panel2.Visible= False
End Sub
_____________________________________________
1 Activity, 2 Layout
Los Views se ponen en su Layout correspondiente.
Para que salga un Layout o el otro borramos los Views correspondientes a ese Layout, mediante la subrutina BorrarViews.
Todo el código está en el Activity Main.
(En los distintos Layout los Views deber tener nombres distintos Label1, Label2, Label3...)
Sub Button1_Click
' BorrarViews
Activity.RemoveAllViews
Activity.LoadLayout( "Layout1" )
End Sub
Sub Button2_Click
' BorrarViews
Activity.RemoveAllViews
Activity.LoadLayout( "Layout2" )
End Sub
Sub BorrarViews
Dim i As Int
For i = Activity.NumberOfViews- 1 To 0 Step - 1
Activity.RemoveViewAt(i)
Next
End Sub
o mejor
Activity.RemoveAllViews
_____________________________________________
2 Activity y 1 Layout en cada una. (es el ejemplo de esta página)
Cada Activity tiene su Layout correspondiente.
(En los distintos Layout los Views deber tener nombres distintos Label1, Label2, Label3...)
Cada Activity tienes su código.
Para crea un nuevo Activity vamos a: Project / Add New Module / Activity Module, le damos un nombro por ejemplo: elotroactivity
Para pasar de un Activity a otro, en el primer Activity ponemos...
Sub Button1_Click
StartActivity (elotroactivity)
End Sub
y en el otro Activity ponemos...
Sub Button2_Click
StartActivity (Main)
End Sub
Las variables comunes se establecen en Process Globals...
Sub Process_Globals
Dim result As String
result = ""
End Sub
_____________________
Otra posibilidad es utilizar paneles deslizantes con...HorizontalScrollView (ver el tutorial)