对话框closures后隐藏软键盘

我想在AlertDialogclosures后隐藏软键盘,但仍然可见。 这是我的代码:

alert = new AlertDialog.Builder(MyActivity.this); imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); alert.setOnDismissListener(new DialogInterface.OnDismissListener() { @Override public void onDismiss(DialogInterface dialog) { imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); } }); 

Solutions Collecting From Web of "对话框closures后隐藏软键盘"

你可以在这里find解决办法:

http://www.workingfromhere.com/blog/2011/04/27/close-hide-the-android-soft-keyboard/

或者在这里:

closures/隐藏Android软键盘

清单xml

机器人:windowSoftInputMode = “stateAlwaysHidden”

它会自动隐藏软键盘上closures对话框

我遇到了同样的问题。 通过这样做解决了。 它不需要任何参考:

 imm.hideSoftInputFromWindow(getWindow().getDecorView() .getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); 

closures警报对话框时,我遇到了类似的问题。 这似乎为我做了诡计。

在你的DialogFragment里面

 public static void closeKB(final View view) { caller.postDelayed(new Runnable() { @Override public void run() { InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } }, 1); } @Override public void onDismiss(DialogInterface dialog) { super.onDismiss(dialog); View view = getActivity().getCurrentFocus(); if (view != null) { closeKB(view); } } 

我用这个方法:

 IBinder token = searchTextEntry.getWindowToken(); ( ( InputMethodManager ) getSystemService( Context.INPUT_METHOD_SERVICE ) ).hideSoftInputFromWindow( token, 0 ); 

其中searchTextEntry是我的EditText引用的名称。

这个答案解决了从对话框中隐藏软键盘的问题,即使没有编辑文本的焦点

如何隐藏对话框closures键盘

所有这些使用InputMethodManagerbuild议都有些模糊 – 在哪里调用它,
而且他们至less对我来说没有工作。
是的,键盘消失,但然后应用程序崩溃!
主要问题是当对话框消失的同时,键盘的隐藏发生。

为了避免它dialog.dismiss()应该在view.postDelayed()后在view.postDelayed() imm.hideSoftInputFromWindow() ,在我的情况下,我设置延迟为150。