在Alertdialog中,如何在关闭时隐藏/关闭Android软键盘?

时间:2018-08-21 05:13:15

标签: android android-softkeyboard

我尝试了很多组合,但是当我单击黑暗区域以关闭警报对话框时,软键盘将不会隐藏。只有“ toggleSoftInput”有效,但它是切换而不是隐藏。

现在我正在显示另一个警报对话框中的输入对话框(带有编辑文本),当onDismiss调用软键盘时,将其隐藏在原始警报对话框中,不愿隐藏自己。

小gif在这里

image

final EditText etNew = (EditText) inflater.inflate(R.layout.edittext, null);

                AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this).setView(etNew);
                final AlertDialog dd = builder.create();

                dd.show();

                //imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
                //imm.showSoftInput(etNew, InputMethodManager.SHOW_FORCED);
                dd.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

                dd.setOnDismissListener(new OnDismissListener() {
                    @Override
                    public void onDismiss(DialogInterface dialog) {
                        //imm.toggleSoftInput(0, 0); //only this works but this is 'TOGGLE',not hide.
                        dd.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

                        imm.hideSoftInputFromInputMethod(etNew.getWindowToken(), 0);
                        imm.hideSoftInputFromWindow(etNew.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
                        imm.hideSoftInputFromInputMethod(etNew.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

                }});

0 个答案:

没有答案