Android 自定义对话框不允许键盘关闭

Android 自定义对话框不允许键盘关闭,android,dialog,keyboard,customdialog,Android,Dialog,Keyboard,Customdialog,我已经通过扩展dialog类创建了一个自定义对话框 在我的应用程序中,我有一个EditText,用户在从操作栏完成后按ok,所以键盘是打开的。然后会出现一个自定义对话框,上面说一切正常,然后单击我关闭键盘,如下所示 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edittext.getWindowTo

我已经通过扩展dialog类创建了一个自定义对话框

在我的应用程序中,我有一个EditText,用户在从操作栏完成后按ok,所以键盘是打开的。然后会出现一个自定义对话框,上面说一切正常,然后单击我关闭键盘,如下所示

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
但键盘一直开着。如果我创建一个生成器并执行相同的操作,键盘将隐藏。另一个线索是edittext的inputType是number,但当对话框出现时,它会变成文本


感谢您的建议或想法。

您必须在构造函数中添加以下代码

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
通常,您希望在当前输入法的顶部显示一个对话框,因为它没有理由接受文本。您可以通过使用以下代码设置WindowManager.LayoutParams.FLAG\u ALT\u FOCUSABLE\u IM窗口标志(假设您的对话框采用默认的输入焦点)来完成此操作:

还发现

getWindow().setFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM,
     WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);