2010-10-13 17 views
6

Tengo una vista con pestañas con una Actividad por pestaña, y cuando cambio de la primera pestaña, que tiene una Vista de texto, a la segunda pestaña, que solo muestra una lista en la que se puede hacer clic, el teclado suave todavía está allí. Quiero que se vaya, por lo que he intentado esto:Ocultar el teclado virtual en la actividad sin operaciones de teclado

public static void hideSoftKeyboard (Activity activity, View view) { 
    InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
} 

pero esto no funciona, porque no hay una visión relevante para proporcionar, ya que no hay Ver en la pantalla que se lleva a la entrada del teclado. ¿Alguna sugerencia sobre cómo resolver esto?

Respuesta

16

probar este en tercera línea de código:

imm.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);

16

Pruebe la respuesta proporcionada por Joe en: Stop EditText from gaining focus at Activity startup

Coloque este dentro del manifiesto de la actividad: android:windowSoftInputMode="stateHidden"

Esta es una pregunta común, y es genial saber que el marco realmente maneja esto muy bien.

+3

: - Tengo esto pero no ayudó. Cuando uso el selector de tareas para pasar de una actividad con el teclado a mi actividad (que no tiene entrada de texto y no necesita teclado), el teclado permanece activo. – ArtOfWarfare

+1

Esto tampoco funciona si está en una actividad, toca un texto de edición para mostrar el teclado y luego presiona el botón Atrás del encabezado de la barra de acciones. Volver a la actividad anterior no oculta el teclado incluso si tiene esa configuración windowSoftInputMode. –

4

También puede intentar

imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);

4
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
0

Este método puede ayudar a ocultar el teclado de ninguna manera. Esto funciona bien para mí

public void hideKeyboard(Activity activity, View view) { 
     if (activity != null) { 

      if(view != null) 
      { 
       try { 
        InputMethodManager imm = (InputMethodManager)this.getSystemService(Service.INPUT_METHOD_SERVICE); 
        imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      }else 
      { 
       activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 
      } 

     } 
    } 
+0

¿También es útil para ocultar la tecla programable en una vista web SIEMPRE? – Criss

Cuestiones relacionadas