2010-12-29 11 views
5

Tengo una pantalla bastante simple con un par de widgets EditText y un botón. En el emulador, cuando hago clic en el widget EditText, aparece un teclado virtual. Sin embargo, parece que no puedo deshacerme de eso. Hacer clic en un espacio vacío en la pantalla no lo hace desaparecer. Solo haciendo clic en la tecla Retorno virtual o en el botón Atrás del hardware, desaparecerá.¿Por qué el teclado virtual no se va?

No tengo un teléfono Android real a la mano, así que esto es solo un emulador o será así en el dispositivo real. Si es así, ¿qué puedo hacer para que desaparezca el teclado virtual cuando hago clic en otro lugar del formulario?

Respuesta

3

Haga clic en el botón Atrás. Ellos teclado es una actividad. No hay una manera fácil de quitar el teclado al hacer clic en un área aleatoria de la pantalla.

+0

¿Los usuarios androides conocidos en general, que esta es la forma de quitar el teclado? – AngryHacker

+0

Hasta donde yo sé, sí. – Falmarri

+0

@AngryHacker - "¿Los usuarios de Android conocen en general que esta es la forma de quitar el teclado?" Mi HTC Desire tiene un botón/tecla en el teclado virtual con un ícono de teclado y una "flecha hacia abajo" que lo oculta cuando se lo presiona. Sospecho que esto hace lo mismo que el botón Atrás del teléfono. – Squonk

2

Creo que en el emulador puede presionar Escape para ocultar el teclado. En un dispositivo real, hay un botón ocultar en el teclado o puede presionar en cualquier lugar de la interfaz de usuario. Así es como funciona en mi HTC Desire S de todos modos.

0

Tengo el Galaxy S2 que ejecuta Andriod 2.3.6.
Estaba teniendo problemas con el teclado que no se movía fuera del camino después de ingresar el texto necesario al iniciar sesión en sitios web. Descubrí que presionar el botón de retorno del hardware quita el teclado virtual del camino. Pero ocasionalmente, el navegador web retrocederá una página. Lo cual es frustrante porque entonces tengo que volver a ingresar la información de inicio de sesión para cualquier sitio web que me conecte. Con suerte, Android 4.x ha resuelto algunos de estos problemas técnicos.

0

Usted puede lograr esto haciendo los siguientes pasos:

  1. hacer que la vista padre (ver el contenido de su actividad) se puede hacer clic y enfocable mediante la adición de los siguientes atributos

    android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. Implementar una método hideKeyboard()

    public void hideKeyboard(View view) { 
         InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); 
         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY); 
        } 
    
  3. Lastly , configure el OnFocusChangeListener de su texto de edición.

    edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() { 
         @Override 
         public void onFocusChange(View v, boolean hasFocus) { 
          if (!hasFocus) { 
           hideKeyboard(v); 
          } 
         } 
        }); 
    

Source

1

que vivieron este problema y lo resolví. Este problema tiene un valor de InputMethodManager.SHOW_FORCED en mi proyecto. Cuando abro el teclado usando SHOW_FORCED, cuando intento cerrar el teclado, el teclado no se cierra.

Por ejemplo:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED); 

Si usa más arriba manera de abrir el teclado, se puede tratar de cambiar SHOW_FORCED valor con SHOW_IMPLICIT valor

Por ejemplo:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); 
Cuestiones relacionadas