valor usar teclas teclado nombre las keypressed evento acciones java android focus android-keypad

java - usar - Evita que el teclado se muestre al iniciar la actividad



usar enter en java (15)

Tengo una actividad con una entrada de Edit Text . Cuando se inicializa la actividad, se muestra el teclado de Android. ¿Cómo puede permanecer oculto el teclado hasta que el usuario enfoque la entrada?


Función para ocultar el teclado.

public static void hideKeyboard(Activity activity) { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } }

Ocultar el teclado en el archivo AndroidManifext.xml.

<activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme" android:windowSoftInputMode="stateHidden">


Agregue estas dos propiedades a su diseño principal (por ejemplo: Diseño lineal, Diseño relativo)

android:focusable="false" android:focusableInTouchMode="false"

Hará el truco :)


Creo que lo siguiente puede funcionar

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

Lo he usado para este tipo de cosas antes.


Esto ocurre cuando EditText es la primera vista en obtener Focus, cuando comienza la actividad. Por lo tanto, puede resolver este problema de manera confiable sin código, simplemente configurando el enfoque inicial en otra vista. Puedes hacer esto en XML, no se requiere código.

Ejemplo:

<Button android:id="@+id/mybutton"> <requestFocus /> </Button>


Intenta esto también -

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

De lo contrario, declare en la actividad de su archivo manifiesto.

<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="stateHidden" >

Si ya ha estado usando android:windowSoftInputMode para un valor como adjustResize o adjustPan , puede combinar dos valores como:

<activity ... android:windowSoftInputMode="stateHidden|adjustPan" ... >

Esto ocultará el teclado cuando sea apropiado, pero desplazará la vista de actividad en caso de que deba mostrarse el teclado.


La mejor solución para mi, pega tu clase.

@Override public void onResume() { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onResume(); } @Override public void onStart() { this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); super.onStart(); }


Ocultarlo para todas las actividades utilizando el tema.

<style name="MyTheme" parent="Theme"> <item name="android:windowSoftInputMode">stateHidden</item> </style>

establecer el tema

<application android:theme="@style/MyTheme">


Para ampliar la respuesta aceptada por @Lucas:

Llama a esto desde tu actividad en uno de los eventos del ciclo de vida temprano:

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

Ejemplo de Kotlin:

override fun onResume() { super.onResume() window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) }


Si está utilizando el nivel 21 de API, puede usar editText.setShowSoftInputOnFocus (false);


Solo agrega en AndroidManifest.xml

<activity android:name=".HomeActivity" android:windowSoftInputMode="stateHidden"> </activity>


Solo agrega esto en tu archivo manifest.xml

<activity android:name=".MainActivity" android:windowSoftInputMode="stateHidden">

Usted está todo hecho.


También puede escribir estas líneas de código en el diseño principal del archivo de diseño .xml en el que tiene el "problema": Aquí está el código:

android:focusable="true" android:focusableInTouchMode="true"

Por ejemplo:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" ... android:focusable="true" android:focusableInTouchMode="true" > <EditText android:id="@+id/myEditText" ... android:hint="@string/write_here" /> <Button android:id="@+id/button_ok" ... android:text="@string/ok" /> </LinearLayout>

La clave es asegurarse de que el EditText no sea directamente enfocable.
¡Adiós! ;-)


Trata de declararlo en archivo de manifiesto.

<activity android:name=".HomeActivity" android:label="@string/app_name" android:windowSoftInputMode="stateAlwaysHidden" >


simplemente agregue esto en su actividad:

@Override public boolean dispatchTouchEvent(MotionEvent ev) { if (getCurrentFocus() != null) { InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } return super.dispatchTouchEvent(ev); }


//to hide the soft keyboard InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0);