El enfoque es para seleccionar componentes de la interfaz de usuario cuando está usando algo además del tacto (es decir, un d-pad, un teclado, etc.). Cualquier vista puede recibir el enfoque, aunque algunas no se pueden enfocar de forma predeterminada. (Puede hacer que una vista setFocusable(true)
se pueda enfocar con y forzarla a enfocarse con requestFocus()
).
Sin embargo, es importante tener en cuenta que cuando está en modo táctil, el enfoque está desactivado . Entonces, si está usando sus dedos, cambiar el enfoque programáticamente no hace nada. La excepción a esto es para las vistas que reciben información de un editor de entrada. An EditText
es un ejemplo. Para esta situación especial setFocusableInTouchMode(true)
se utiliza para que el teclado virtual sepa dónde enviar la entrada. UnEditText
tiene esta configuración por defecto. El teclado virtual aparecerá automáticamente.
Si no desea que el teclado virtual aparezca automáticamente, puede suprimirlo temporalmente como señaló @abeljus:
InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
Cuando un usuario hace clic en el EditText
embargo, cuando , todavía debería mostrar el teclado.
Otras lecturas: