Hola.
Tengo el siguiente código con el que pretendo (muchas veces, de forma cíclica), recoger la entrada de tres números entre 1 y 5 cada uno (sin repetirlos).
Luego componer un número de tres cifras con las entradas almacenadas en tres etiquetas y en un vector e(3).
Para ello he dispuesto una Activity con tres etiquetas que recogerán una única cifra. Otra etiqueta para mostrar la “Salida” (o Solución).
Cinco botones con Nombre, Tag y Texto: btnN1, 1 , 1…btnN2, 2, 2 etc con btnEvent. Un botón más para iniciar una nueva entrada: OTRA.
Y un botón CUARTO para mostrar la salida (no quiero que el resultado se vea de inmediato)
El programa compila bien tanto en modo DEBUG como en modo RELEASE. No hay ningún mensaje de error ni advertencia alguna.
Al ejecutarlo en el móvil funciona todo bien en el primer intento, como se esperaba. Salvo que no se muestran unas sentencias log() que he intercalado en el código a modo de control del flujo.
Pero al querer repetir ese proceso en un nuevo ciclo, con el botón OTRA, para recoger nuevos datos, todo se descompone:
En la ventana LOGs aparecen un montón de líneas con avisos de error (java) que he copiado.
El terminal deja de funcionar (se bloquea) y no puedo acceder a ningún otro lugar, ni para cerrar el programa. Tengo que reiniciar el móvil.
El PC con el IDE no está conectado a la red. La depuración se hace vía USB, pero eso ha funcionado con otros programas.
Se pretende ampliar el programa con otras rutinas posteriores. La salida es solamente una prueba.
¿Qué hago mal? ¿Alguna sugerencia? Gracias.
Tengo el siguiente código con el que pretendo (muchas veces, de forma cíclica), recoger la entrada de tres números entre 1 y 5 cada uno (sin repetirlos).
Luego componer un número de tres cifras con las entradas almacenadas en tres etiquetas y en un vector e(3).
Para ello he dispuesto una Activity con tres etiquetas que recogerán una única cifra. Otra etiqueta para mostrar la “Salida” (o Solución).
Cinco botones con Nombre, Tag y Texto: btnN1, 1 , 1…btnN2, 2, 2 etc con btnEvent. Un botón más para iniciar una nueva entrada: OTRA.
Y un botón CUARTO para mostrar la salida (no quiero que el resultado se vea de inmediato)
El programa compila bien tanto en modo DEBUG como en modo RELEASE. No hay ningún mensaje de error ni advertencia alguna.
Al ejecutarlo en el móvil funciona todo bien en el primer intento, como se esperaba. Salvo que no se muestran unas sentencias log() que he intercalado en el código a modo de control del flujo.
Pero al querer repetir ese proceso en un nuevo ciclo, con el botón OTRA, para recoger nuevos datos, todo se descompone:
En la ventana LOGs aparecen un montón de líneas con avisos de error (java) que he copiado.
El terminal deja de funcionar (se bloquea) y no puedo acceder a ningún otro lugar, ni para cerrar el programa. Tengo que reiniciar el móvil.
El PC con el IDE no está conectado a la red. La depuración se hace vía USB, pero eso ha funcionado con otros programas.
Se pretende ampliar el programa con otras rutinas posteriores. La salida es solamente una prueba.
¿Qué hago mal? ¿Alguna sugerencia? Gracias.
B4X:
#Region Project Attributes
#ApplicationLabel: NUM_5_02
#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
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Private xui As XUI
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
Private btnN1 As Button
Private btnN2 As Button
Private btnN3 As Button
Private btnN4 As Button
Private btnN5 As Button
Private btnOtra As Button
Private btnSalida As Button
Private lblN1 As Label
Private lblN2 As Label
Private lblN3 As Label
Private lblSalida As Label
Private e(3) As Int
Private nPartida = 0 As Int
Private QueEtiqueta = 0 As Int
Dim i As Int
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Layout")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Private Sub btnOtra_Click
'nPartida = nPartida + 1 ' de momento no se usa
QueEtiqueta = 0
' Subrutina para limpiar textos y activar botones
Preparar
' Dónde enviar cada entrada
Log(" P R E P A R A D O ++++++++++++")
' Recoger 3 entradas
For i = 1 To 3
btnEvent_Click
Next
Log("++++++++++++++++++++++++++++++++++")
Log("YA hay tres valores en e(0 - 1 - 2")
Log("++++++++++++++++++++++++++++++++++")
End Sub
Private Sub btnEvent_Click
Private btnSender As Button
btnSender = Sender
QueEtiqueta = QueEtiqueta + 1
' Luckily there are only three... (but 30?)
Select QueEtiqueta
Case 1
lblN1.Text = btnSender.Text
e(0) = btnSender.Text
Case 2
lblN2.Text = btnSender.Text
e(1) = btnSender.Text
Case 3
lblN3.Text = btnSender.Text
e(2) = btnSender.Text
End Select
' I do't want to repeat buttons
btnSender.Enabled = False
' Three values naw. End of entry part.
' Desactivar TODOS los botones
' If QueEtiqueta > 3 Then FinEntrada = True 'And other code...
If QueEtiqueta = 3 Then
Limpiar ' Return ' Ya hay tres entradas
End If
End Sub
Sub Preparar
lblN1.Text = ""
lblN2.Text = ""
lblN3.Text = ""
lblSalida.Text = ""
btnN1.Enabled = True
btnN2.Enabled = True
btnN3.Enabled = True
btnN4.Enabled = True
btnN5.Enabled = True
End Sub
Sub Limpiar
btnN1.Enabled = False
btnN2.Enabled = False
btnN3.Enabled = False
btnN4.Enabled = False
btnN5.Enabled = False
End Sub
Private Sub btnSalida_Click
' La solución será más compleja. De momento vale esto
' como número de tres cifras entre 123 y 543 (sin repetir).
lblSalida.Text= e(0) & e(1) & e(2)
End Sub