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

时间:2013-06-26 08:05:40

标签: android dialog keyboard customdialog

我通过扩展Dialog类创建了一个自定义对话框。

在我的应用程序中,我有一个EditText,用户在操作栏完成后按下确定,因此键盘已打开。然后出现一个说明一切正常的CustomDialog,点击后我就像这样关闭键盘

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);

但是键盘保持打开状态。如果我创建一个构建器并执行相同的键盘隐藏。另一个线索是edittext的inputType是数字,但是当对话框出现时它变成文本。

感谢您提出任何建议或意见。

1 个答案:

答案 0 :(得分:0)

您必须在costructor中添加以下代码

getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
  

通常,您希望在当前输入法的顶部显示对话框,因为它没有理由接受文本。您可以通过使用以下代码设置WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM窗口标志(假设您的Dialog采用默认的输入焦点)来执行此操作:

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

还找到here