Spanish CARGAR O VER UN LAYOUT VARIAS VECES EN UN BUCLE

PabloA

Member
Hola, buenas noches, soy nuevo en la programación de Android. Mi problema es el siguiente, estoy haciendo una aplicación para mostrar un LAYOUT en bucle, pero cuando ejecuto el programa no se detiene en el primer valor sino que pasa y muestra el LAYOUT hasta el último valor.
Hay alguna manera de hacer pausa? en el primer valor, segundo valor .... y así hasta el ultimo valor del bucle.
Cualquier colaboración se agradece de antemano.


Sub Activity_Create (first as boolean)
For i=1 to 3
Activity.LoadLayout("tramos")
Label4.Text="TRAMO" & i
Next
 

edgar_ortiz

Active Member
Licensed User
Longtime User
Pablo,

NO se cual es la finalidad de tu proyecto... pero adivinando:
- Si quieres pausar el mostrar algo puedes usar: Sleep (X_Milisegundos)

Saludos,

Edgar
 

josejad

Expert
Licensed User
Longtime User
Hola:

Bienvenido al foro¡

Por favor, no dejes de echar un vistazo a las Normas del foro
Usa también etiquetas cuando vayas a poner código, para que se lea más claro, de este modo: [code] ... tu código aquí... [/code]
También, la manera más fácil de ayudarte es que subas tu proyecto para que podamos probarlo.

Dicho esto, y como te ha comentado Edgar, puedes usar sleep para hacer una pausa, pero no es necesario recargar el layout para lo que quieres hacer

B4X:
'No probado
Activity.LoadLayout("tramos")
For i = 0 to 2
  Label4.Text="TRAMO" & i
  sleep(500)
Next
 

PabloA

Member
Me disculpo por los errores cometidos en mi pregunta.
y gracias por las respuestas.
Ya probé con lo que me indico Jose J. Aguilar, pero sigue mostrandome solo el layout ultimo "TRAMO 3" y no asi los 3 Layouts.
Y la finalidad de mi proyecto es ingresar por un Layout el numero de tramos, para luego con ese valor ir ingresando valores en otro Layout el numero de veces que me indica.
 

Attachments

  • tramos.rar
    164.5 KB · Views: 98

angel_

Well-Known Member
Licensed User
Longtime User
No lo acabo de entender ya que realmente sólo estás cargando un Layout ("tramos") pero el cambio en Label4 se muestra si aumentas el Sleep.

B4X:
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("tramos")
    For i= 1 To 3
        Label4.Text="TRAMO " & i
        Label4.SetColorAnimated(2000, xui.Color_LightGray, xui.Color_Green)
        Sleep(2000)
    Next
End Sub
 

PabloA

Member
No lo acabo de entender ya que realmente sólo estás cargando un Layout ("tramos") pero el cambio en Label4 se muestra si aumentas el Sleep.

B4X:
Sub Activity_Create (primera vez como booleano)
    Activity.LoadLayout("tramos")
    Para i= 1 a 3
        Label4.Text="TRAMO" & yo
        Etiqueta4.SetColorAnimated(2000, xui.Color_LightGray, xui.Color_Green)
        Dormir (2000)
    próximo
Finalizar sub[/CÓDIGO]
[/QUOTE]
Si ya lo habia probado de esa manera tambien aumentando el tiempo en el sleep , pero lo que quiero es que no solo muestre el layout y permanesca un tiempo determinado, sino que despues de ingresar datos en ese layout y   presione el boton "Aceptar"  se reinicie el bucle y me muestre el siguiente tramo 2 e ingreso los datos y luego el tramo 3 , 4 , etc.
Lo que hace el sleep es pausar solamente el tiempo que le des y luego continua automaticamente sin dar tiempo para ingresar los datos y presionar el boton "Aceptar".
 

josejad

Expert
Licensed User
Longtime User
Hola:

Ahora voy entendiendo.
Creo que estás un poco confuso. Normalmente, en la programación dirigida por eventos, tú no fuerzas la ejecución, sino que tienes que ir esperando que los eventos ocurran (por ejemplo, que el usuario escriba y pulse el número), y controlar esa ejecución de alguna forma, por ejemplo indicando: "Introduzca el siguiente dato" y al llegar al número que quieras de veces, cambias de acción.

Te adjunto un pequeño ejemplo sin darle muchas vueltas.

saludos,
 

Attachments

  • tramosv1.zip
    6.2 KB · Views: 98

PabloA

Member
Siii eso es lo que estaba buscando, muchas gracias José.
Y no habría alguna forma de hacerlo con el bucle For ? sin usar sleep
 

josejad

Expert
Licensed User
Longtime User
bueno, creo que podrias usar el bucle for pero tendrías que mostrar algo en pantalla para toma el dato y esperar respuesta, un B4xDialog o algo así
 
Top