2010-06-24 18 views
7
<EditText android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:layout_weight="1" 
    android:id="@+id/name" android:singleLine="true" 
    android:maxLength="12" android:capitalize="none" android:inputType="text" /> 
<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:id="@+id/search_button" 
    android:text="Search" /> 

Tengo esto en la parte superior de mi aplicación. Cuando se inicia la aplicación, EditText está resaltado en naranja y tiene un cursor; cuando se toca EditText, aparece el teclado virtual. El usuario lo usa para escribir en EditText.Android: Editar texto y botón; al hacer clic en Botón, desenfocar EditText y ocultar el teclado virtual?

Sin embargo, cuando hacen clic en el botón, mi método onClick se dispara y hace todo lo que se supone que debe hacer; sin embargo, el teclado permanece en la pantalla y EditText sigue resaltado con el cursor.

que también tienen, en la parte superior del botón onclick:

findViewById(R.id.name).clearFocus(); 

A pesar de esto, no parece que el EditarTexto para aclarar su enfoque. ¿Cómo hago que el botón realmente actúe como si estuviera enviando el formulario?

Además, no hago la transición a una actividad diferente al hacer clic en el botón. Supongo que ese es el caso típico, y probablemente la razón por la que no se molestan en esconder el teclado. Sin embargo, quiero mantener el cuadro de búsqueda y el botón en la parte superior de la pantalla, de modo que simplemente llene y agregue dinámicamente las vistas a la pantalla cuando se presiona el botón.

¿Cómo puedo lograr mi comportamiento deseado?

Respuesta

13

Puede ocultar el teclado llamando a esto.

InputMethodManager imm = (InputMethodManager) getSystemService(
    INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(getWindowToken(), 0); 
+0

Sí, pero ¿realmente es la mejor manera de hacerlo? – Ricket

+0

Bueno, funcionó ... Así que supongo que está bien ... Todavía parece un hack ... – Ricket

+1

No es un truco, es cómo se hace en toda la fuente de Android. Supongo que está destinado para que el usuario presione para cerrar el IME, pero si no lo hace o si desea cerrarlo manualmente, entonces así debe cerrar el IME antes de que Android lo cierre por sí solo. –

Cuestiones relacionadas