Buenas, lo que deseo es poder validar que el usuario haya metido un dato en un edittext, y que cuando salgo de él si no ha puesto nada que no le deje salir del edittext.
He probado a poner la validación en FocusChanged, pero cuando sale del edittext1 al edittext2 y el edittext1 no cumple hago un RequestFocus al edittext1, pero entonces salta la validación del editext2 y se pone en un bucle infinito pasado del edittext1 al edittext2.
Adjunto el código:
Pongo algo en lunes y paso al martes, si en martes no pongo nada y paso al miercoles, el cursor se pone a pasar indefinidamenete del martes al miercoles.
¿Alguien se le ocurre como lo puedo solucionar?
Gracias
He probado a poner la validación en FocusChanged, pero cuando sale del edittext1 al edittext2 y el edittext1 no cumple hago un RequestFocus al edittext1, pero entonces salta la validación del editext2 y se pone en un bucle infinito pasado del edittext1 al edittext2.
Adjunto el código:
B4X:
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim vPanel As ScrollView
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
vPanel.Initialize(10dip)
Activity.AddView(vPanel,0,0,100%x,100%y)
vIME.Initialize("vIME")
Dim Nombres() As String=Array As String ("Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo")
Dim i As Int
For i=0 To Nombres.Length-1
CargarTXT(Nombres(i))
Next
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub CargarTXT(Nombre As String)
Dim y As Int
Dim etCantidad As EditText
Dim lblNombre As Label
y=vPanel.Panel.Height
vPanel.Panel.Height=y+50
lblNombre.Initialize("")
vPanel.Panel.AddView(lblNombre,0,y,150dip,40dip)
lblNombre.Gravity=Gravity.CENTER_VERTICAL
lblNombre.Text=Nombre
etCantidad.Initialize("etCantidad")
etCantidad.InputType=etCantidad.INPUT_TYPE_NUMBERS
vPanel.Panel.AddView(etCantidad,160dip,y,80dip,40dip)
End Sub
Sub etCantidad_FocusChanged (HasFocus As Boolean)
Dim eT As EditText
eT=Sender
If HasFocus=False Then ' Cuando sale
If eT.Text="" Then
ToastMessageShow("Ha de indicar un número cero",True)
eT.RequestFocus
Return
End If
End If
End Sub
¿Alguien se le ocurre como lo puedo solucionar?
Gracias