6

我已经用显示我的 XML 布局的类扩展了 AlertDialog。我不使用 AlertDialog 的标准按钮,我有自己的 OK 和 Cancel 按钮。听众为他们打电话dismiss()。问题是如果我正在编辑 EditText 的内容然后按 OK(它是 Android 3.1 平板电脑,键盘不会阻止我与对话框交互),对话框将隐藏但键盘不会,它会留在后台。可能是什么原因以及如何解决?

这是我的对话框的构造函数,给出这个想法:

public NetworkCameraParametersDialog(Context context ) {
        super(context);

        View content = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.dialog, null);
        setView(content);

        Button btnOk = (Button) content.findViewById(R.id.btn_Ok);
        btnOk.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                                // Some work
                dismiss();              
            }
        });

        Button btnClose = (Button) content.findViewById(R.id.btn_Close);
        btnClose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                dismiss();
            }
        });
    }
4

1 回答 1

4

您可以强制软键盘隐藏:

    try {
        InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), 0);
    } catch (Exception e) {}
于 2012-09-20T15:11:04.360 回答