activity结束时(finish)用代码让软键盘隐藏(如果软键盘显示)

需求:界面(activity)finish消失的同时,如果软键盘显示,则让其隐藏

方案一:

 @Override
    protected void onDestroy() {
        super.onDestroy();

        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        if (imm != null) {
            imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
        }

    }

以上方法在一个界面(dialog形式的acitivity)是可以的,但是在另一个界面(正常的,占满整个屏幕的activity)却不行了。还没找出具体原因。

方案二:

放在结束界面的监听事件中:

case R.id.rlBackArrow:
                hideInput(this, etContent);
                finish();
                break;
private void hideInput(Context context, View view) {
        InputMethodManager inputMethodManager =
                (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }

在finish之前隐藏键盘,问题就解决了

 

 

一些基础知识:

Android 中InputMethodManager类的用法

https://blog.csdn.net/pi9nc/article/details/9196779

你可能感兴趣的:(Andorid:之软键盘)