2016 - 2025

感恩一路有你

Android隐藏输入法软键盘的一些说明

浏览量:2455 时间:2024-01-13 12:45:37 作者:采采

在编写一个仿微信的Android聊天软件时,我发现了一个严重的BUG。当用户点击输入框用软键盘输入文本的同时点击了“返回好友列表”按钮,返回到好友列表时软键盘无法关闭。

为了解决这个问题,我上网找了一些关于Android如何隐藏输入法的方法。普遍的方法如下:

((InputMethodManager)getSystemService(_METHOD_SERVICE)).hideSoftInputFromWindow(().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

然而,当我将这段代码加入到返回按钮的点击事件后,发现当用户点击了返回按钮时App异常退出,并没有报错。我查询了一下Android开发官网,发现实现以上功能的代码应该这样写:

((InputMethodManager) getSystemService(_METHOD_SERVICE)).hideSoftInputFromWindow((), InputMethodManager.HIDE_NOT_ALWAYS);

这里的editview是输入框。之所以用第二段代码能够实现所需功能,是因为第二段代码是关闭指定输入框的输入法,而第一段代码则针对整个Activity。在实际情况下,输入法是在输入框获得焦点时打开的,而不是在Activity全局打开的,所以第一段代码无法起效,并且会导致异常退出。

当然,在某些游戏中可能会用到针对Activity全局打开的输入法软键盘。因此,在使用关闭软键盘的代码时,一定要注意关闭之前是哪个控件触发的软键盘,还是由Activity触发的。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。