Spanish Otro consejo Sobre CustomListView

lalloral

Member
Licensed User
Lo primero de todo es darle las gracias a IdasI4A por haberme corregido el codigo que he enviado a este foro.
Tengo otra duda de la que no soy capaz de salir.
Sobre ese mismo codigo, al introducir un dato y darle al enter en el teclado este se desplaza a la siguiente posicion del CustomViewList, mi pregunta es la siguiente:
¿Existe alguna manera de que te compare el valor que has introducido y si no esta dentro de unos parametros prefijados te de un mensaje y no te deje pasar a la siguiente posicion del CustomViewList?, con el problema añadido de que esos valores los estoy guardando en una lista para luego recuperarlos y hacer unos calculos matematicos con ellos.
Espero que me podais dar alguna idea de como hacerlo (en el caso de que se pueda).
Un saludo a todos.
Os envio de nuevo el codigo en Zip.
 

Attachments

  • lista.zip
    11.4 KB · Views: 180

musaso

Active Member
Licensed User
Tal vez es esto lo que buscas ?

B4X:
Sub metros_EnterPressed
    Dim eTMetros As EditText
    eTMetros=Sender
    If eTMetros.Text = "x" Then'valor correcto
        almc.Add(eTMetros.Text)
        mirarlog
    Else'valor incorrecto
        MsgboxAsync("Introduce un valor correcto","Valor incorrecto")           
    End If
End Sub
 

lalloral

Member
Licensed User
Gracias por responder, es algo parecido, pero si te das cuenta al introducir el valor "incorrecto", efectivamente me sale el mensaje del Msgbox , PERO, y pongo el pero en mayusculas porque es lo que no soy capaz de hacer, al introduci el dato y hacer el EnterPressed se desplaza a la introducción del siguiente dato y eso es lo que quisiera evitar, es decir, me pide el dato y al darle al EnterPressed, que me compare ese dato para ver si es correcto, si es correcto que salte a la siguiente posición para pedirme el siguiente dato ,PERO si es incorrecto que me salga el Msbox y se mantenga en la misma posicon hasta que introduzca el dato correcto.
No se si me he explicado con claridad.
La verdad es que no se me ocurre como hacerlo y tampoco se si es posible hacerlo.
Si se os ocurre alguna idea, bienvenida sea.
Un saludo a todos.
 

josejad

Expert
Licensed User
Longtime User
Los edittext (y otros componentes) tienen la propiedad "requestfocus".
Puedes hacer
B4X:
Sub metros_EnterPressed
    Dim eTMetros As EditText
    eTMetros=Sender
    If eTMetros.Text = "x" Then'valor correcto
        almc.Add(eTMetros.Text)
        mirarlog
    Else'valor incorrecto
        MsgboxAsync("Introduce un valor correcto","Valor incorrecto")
        eTMetros.RequestFocus '<------------
    End If
End Sub

Method_636.png
RequestFocus As Boolean

Tries to set the focus to this view.
Returns True if the focus was set.
 
Top