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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值