我正在展示一份带有消息列表,每个消息行都有一个评论按钮。当我点击评论按钮时,会打开一个评论框,其中包含编辑文本和提交评论的按钮。当评论框出现在屏幕上时,键盘也会出现以输入文本。如果我在输入文本之前按下主页按钮,则应用程序会进入后台,但键盘仍然保持在屏幕上。这是令我烦恼的事情。对于自定义列表,我正在使用自定义适配器,并且评论框的代码编写在该适配器中。我尝试使用,但它不起作用。那么我如何在程序中隐藏这个键盘呢?
public static void hideSoftKeyboard(Activity context) {
InputMethodManager inputManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputManager != null)
inputManager.hideSoftInputFromWindow(context.getWindow().getDecorView().getApplicationWindowToken(), 0);
context.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
尝试使用https://dev59.com/vHNA5IYBdhLWcg3wC5Xh#1109108中的代码。希望你不要在Android 4.1版本上测试它。
KeyEvent.KEYCODE_HOME
无法被拦截。您可以在活动的 onStop()
方法中隐藏键盘 inputmgr.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
。
它不需要来自聚焦视图 editText
的令牌。
onStop()
中调用它。 - Pr38y