天天看点

Android 自动弹出\关闭软键盘

应用场景:在页面UI中含有密码输入框或者是需要输入某些文字的控件的时候,弹出dialog同时自动弹出键盘,编辑后点击取消或者是完成直接关闭,或者是点击物理back键时自动隐藏掉软键盘。

        inputManager = (InputMethodManager) context

                .getSystemService(Context.INPUT_METHOD_SERVICE);

        Timer timer = new Timer(); // 设置定时器

        timer.schedule(new TimerTask() {

            public void run() { // 弹出软键盘的代码

                inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

            }

        }, 300); // 设置300毫秒的时长

备注:对于刚跳到一个新的界面就要弹出软键盘的情况上述代码可能由于界面为加载完全而无法弹出软键盘。此时应该适当的延迟弹出软键盘如300毫秒(保证界面的数据加载完成)

    public void dismiss() {

  //inputManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

        inputManager.hideSoftInputFromWindow(view.getWindowToken(), 0);

        super.dismiss();

    }

参考知识:

InputMethodManager inputMethodManager= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);

        inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);

        //如果软键盘已经打开,隐藏,如果没有打开,打开

        inputMethodManager.showSoftInput(mCommentBarEdit, InputMethodManager.SHOW_FORCED);

        //强制打开

        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);

        //强制隐藏