2011-08-26 30 views
7

Bueno, estoy tratando de evitar que el teclado virtual se cierre cuando el usuario presiona el botón "ok" después de editar un campo de texto. En realidad, lo que estoy tratando de lograr es: cuando se presiona el botón "ok", el campo se analiza y, si es válido, comienza otra actividad. Eso es bastante fácil.Mantener el teclado suave abierto cuando se presiona la tecla enter

Pero, cuando el campo no es válido, quiero que el teclado virtual se mantenga abierto. Y eso es ... un infierno más complicado. Si alguien sabe cómo lograr tal cosa ...

Gracias de antemano.

EDITAR: lo que quiero decir con el botón Aceptar es el botón Aceptar desde el teclado virtual.

Respuesta

12

Acople OnEditorActionListener a su campo de texto y volver true de su método onEditorAction, cuando ActionID es igual a IME_ACTION_DONE. Esto evitará teclado en pantalla de ocultación:

EditText txtEdit = (EditText) findViewById(R.id.txtEdit); 
txtEdit.setOnEditorActionListener(new OnEditorActionListener() { 

    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    if (actionId == EditorInfo.IME_ACTION_DONE) { 
     // your additional processing... 
     return true; 
    } else { 
     return false; 
    } 
    } 

}); 
+1

Dependiendo de su EditarTexto 'androide: valor imeOptions', puede que tenga que comprobar ActionID contra' IME_NULL', 'IME_ACTION_GO' etc. – Idolon

+0

probé y que está funcionando perfectamente! – Redwarp

+0

¡Funcionó a la perfección! estado buscando esto – zeitue

Cuestiones relacionadas