Intereting Posts
Как Native Extension делает снимок экрана на устройстве Android? Android 5 Плохое уведомление отправлено из пакета Сообщение «Поле может быть преобразовано в локальную переменную» появляется при настройке цвета панели действий Что такое идентификатор TextView в макете simple_list_item_1 в Android? Android MapActivity: не удалось получить соединение с заводским клиентом Панель навигации Android, накладывающаяся на мой взгляд Qt5.1-android: версия Qt для mips, отсутствующих в QtCreator OnGlobalLayoutListener: устаревание и совместимость Приложение загружает неправильные текстуры при открытии снова Уведомления Firebase (FCM) не появляются, когда приложение Android отключено из последнего лотка Может ли приложение Android установить другое приложение для Android? Android textAllCaps в теме Не удалось подключить отладчик в Android Studio – localhost: 8600 java.net.ConnectException Spinner не может загрузить целочисленный массив? Запрос местоположения, установленный на эмуляторе Android с помощью React-Native

Скрыть клавиатуру мягкого ввода, когда диалог закрывается

Я открываю Dialog изнутри Activity . Когда откроется диалоговое окно, я вызываю

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

Проблема в том, что когда я закрываю диалог либо нажатием кнопки отмены, либо нажатием вне диалогового окна, клавиатура переключается на текстовую клавиатуру и не исчезает, я нажимаю кнопку возврата оборудования. Как я могу убрать клавиатуру, когда диалог отклонен, и фокус возвращается в предыдущее окно?

Solutions Collecting From Web of "Скрыть клавиатуру мягкого ввода, когда диалог закрывается"

В AndroidManifest.xml , установите это свойство в своей деятельности, которые показывают диалог

андроид: windowSoftInputMode = "stateAlwaysHidden"

Заметка! Не stateHiddent , stateAlwaysHidden . Он автоматически скроет мягкую клавиатуру на Dismass of Dialog.

Надеюсь, что спаси свою жизнь.

Я предполагаю, что этот метод активности может быть вам полезен.

  @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(); 

В моем случае решение заключалось в том, чтобы скрыть клавиатуру в диалоговом окне

 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); } } }); 

Из действия метода onCreateView () вы можете сделать это:

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

Или в манифесте xml

 android:windowSoftInputMode="stateAlwaysHidden" 

Он автоматически скроет мягкую клавиатуру на Dismass of Dialog