2011-01-30 15 views
7

Desde el tutorial androide:tipo de EditarTexto, cómo hacer desaparecer el teclado

pass_text.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     // If the event is a key-down event on the "enter" button 
     if ((event.getAction() == KeyEvent.ACTION_DOWN) 
       && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
      // Perform action on key press 
      return true; 
     } 
     return false; 
     } 
    }); 
} 

cuando tecleo en EditarTexto, tiene un teclado aparecen en el cuadro. Quiero saber después de Enter. Cómo hacer que el teclado salga del marco, excepto hacer clic en Atrás.

enter image description here

Gracias

Respuesta

24

intente lo siguiente

Para la Actividad:

InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
mgr.hideSoftInputFromWindow(curEditText.getWindowToken(), 0); 

En caso de Fragmento:

InputMethodManager mgr = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); 
     mgr.hideSoftInputFromWindow(mEditText.getWindowToken(), 0); 
+0

Gracias por su respuesta. – Yoo

14

dar la caja EditText tiene el atributo android:imeOptions="actionDone" esto cambiará el botón Enter a un botón Hecho que cerrará el teclado.

+0

Gracias. Creo que esta es la respuesta mejor y más adecuada. – Shiun

+2

Una palabra de advertencia: esto no parece funcionar en el 100% de los teléfonos que hay – atraudes

+1

@atraudes He visto problemas, algunos teléfonos también quieren singleline = true no han tenido un problema fuera de eso. – schwiz

1

Un enfoque de trabajo para deshacerse del teclado virtual es deshabilitar y luego habilitar el campo TextEdit en el evento Return-key, evento button-press o lo que sea. Por ejemplo:

.... 
pass_text.setEnabled(false); 
pass_text.setEnabled(true); 
.... 
+0

Esta respuesta puede no encajar mejor con el problema de la persona que pregunta, pero ayuda a todos los otros SO más. Esta debería ser la respuesta aceptada. –

0

Creo que podemos simplemente añadir este atributo a nuestra EditarTexto:

androide: inputType = "text"

Esto obligará automáticamente el texto para estar en una sola línea y por lo tanto, cuando hacemos clic en Entrar, el teclado desaparece.

Cuestiones relacionadas