¿Cómo eliminar la ventana emergente de enfoque automático/teclado de un campo cuando aparece la pantalla?


Tengo una pantalla donde el primer campo es un EditText, y gana el foco al inicio, también aparece el tipo de entrada numérica, lo cual es muy molesto

¿Cómo puedo asegurarme de que cuando se inicia la actividad no se obtiene el foco y/o no se eleva el panel de entrada?

Author: S H, 2010-05-23

8 answers

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

O

Establezca la propiedad activity en el archivo manifest como se muestra a continuación en la etiqueta de la aplicación

android:windowSoftInputMode="stateHidden"
 133
Author: Mitul Nakum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-06 17:40:48

Vaya al archivo de manifiesto de su aplicación y escriba esta línea para la actividad que desea deshabilitar la ventana emergente de teclado automático.

android:windowSoftInputMode="stateHidden"
 137
Author: sm.euro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-15 19:48:50

Para programar que no se muestre el teclado, pero el widget predeterminado aún recibe la llamada de enfoque:

getWindow().setSoftInputMode(WindowManager.
                             LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

En onResume()

 17
Author: danmux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-31 22:51:21
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

Llama al método anterior dentro de onCreate () . Evita que softKeyboard se muestre a menos que el usuario seleccione EditText por tapping or clicking.

O simplemente agregue android:windowSoftInputMode="stateHidden" en la etiqueta de actividad en Manifest.xml

 9
Author: Xar-e-ahmer Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-19 09:06:34

Tenga otro enfoque de captura de vista. De forma predeterminada, la primera vista enfocable se enfocará cuando se infle un diseño. Puede solicitar el enfoque en una vista diferente a través de XML:

<TextView
    android:layout_width="wrap_parent"
    android:layout_height="wrap_content"
    android:text="Some other view">

    <requestFocus />
</TextView>

Esto funciona para cualquier vista.

Si desea hacerlo mediante programación, puede usar view.requestFocus().

 4
Author: Jason Robinson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-10 22:48:35

Esto suele ser un desastre. Lo primero que intento es tratar de robar el enfoque con otra vista a través . También tienes que tener el modo focusable y Focusableintouch.

<TextView
  ...
  android:focusable="true"
  android:focusableInTouchMode="true">

    <requestFocus/>
</TextView>
 2
Author: urSus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-06 12:37:01
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
 0
Author: paul Liang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-24 10:34:45

No he probado esto ni estoy cerca de mi computadora de programación, pero sospecharía que el envío programático de enfoque a la vista principal o algo de esa naturaleza podría hacer el truco: es más probable que sea una solución alternativa que una solución, pero nuevamente no es capaz de probarlo solo un pensamiento

 -1
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-26 19:01:44