Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Ocultar teclado de entrada suave cuando se cierra el diálogo

Estoy abriendo un Dialog desde dentro de una Activity . Cuando se abre el diálogo, llamo

 ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

El problema es, cuando cierro el cuadro de diálogo pulsando un botón de cancelar o haciendo clic fuera del cuadro de diálogo, el teclado cambia a un teclado de texto y no se va util utilice el botón de hardware atrás. ¿Cómo puedo descartar el teclado cuando el diálogo se descarta, y el enfoque se devuelve a la ventana anterior?

5 Solutions collect form web for “Ocultar teclado de entrada suave cuando se cierra el diálogo”

En AndroidManifest.xml , establezca esta propiedad en su actividad que muestre el diálogo

Android: windowSoftInputMode = "stateAlwaysHidden"

¡Nota! No stateHiddent , es stateAlwaysHidden . Se oculta automáticamente el teclado virtual en Descartar de diálogo.

Espero que salve su vida.

Supongo que este método de la actividad puede ser útil para usted.

  @Override public void onWindowFocusChanged(boolean hasFocus) { // TODO Auto-generated method stub super.onWindowFocusChanged(hasFocus); if(hasFocus) { Toast.makeText(MainActivity.this, "has focus", Toast.LENGTH_LONG).show(); // write code to remove keyboard } } 
 AlertDialog.Builder builder = new AlertDialog.Builder(EllipticalActivity.this); builder.setTitle("title") .setMessage("message") .setCancelable(false) .setNegativeButton("Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); 

En mi caso, la solución era poner ocultar el teclado en el diálogo de descartar

 dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { View view = activity.getCurrentFocus(); if (view != null) { InputMethodManager inputManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } }); 

Desde el método Activity onCreateView () puedes hacer esto:

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) 

O En Manifiesto xml

 android:windowSoftInputMode="stateAlwaysHidden" 

Se oculta automáticamente el teclado virtual en Dismiss of Dialog

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.