Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在三星设备上打开对话框后关闭软键盘_Android_Keyboard_Android Softkeyboard - Fatal编程技术网

Android 在三星设备上打开对话框后关闭软键盘

Android 在三星设备上打开对话框后关闭软键盘,android,keyboard,android-softkeyboard,Android,Keyboard,Android Softkeyboard,我有一个包含编辑文本的对话框(inputType=“number”)。对话框关闭后,我想隐藏键盘,如果对话框的编辑文本在某个点处于焦点,键盘将打开 现在的问题是,我有一个可行的方法(至少在一些Nexus设备上),除了三星设备(至少是S2、S3) 在其他设备上,键盘(仅数字)在对话框结束后关闭。 在三星设备上,键盘只是变成了一个包含所有字母(inputType=“text”)的键盘,而不是inputType=“numbers”的键盘。我想让它关闭/隐藏 我不能做这样的事 getWindow().s

我有一个包含编辑文本的对话框(
inputType=“number”
)。对话框关闭后,我想隐藏键盘,如果对话框的编辑文本在某个点处于焦点,键盘将打开

现在的问题是,我有一个可行的方法(至少在一些Nexus设备上),除了三星设备(至少是S2、S3)

在其他设备上,键盘(仅数字)在对话框结束后关闭。 在三星设备上,键盘只是变成了一个包含所有字母(
inputType=“text”)
的键盘,而不是
inputType=“numbers”
的键盘。我想让它关闭/隐藏

我不能做这样的事
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT\u输入\u状态\u始终隐藏)
对于后台的活动,因为我也需要一个键盘

有人知道如何处理这个三星特有的问题吗

使用此代码

InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

我没有三星设备来测试我的代码,但我正在使用EditText中的WindowToken来隐藏软键盘。 我的代码如下所示:

View focused = getCurrentFocus();
if (focused != null) {
    InputMethodManager iM = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    iM.hideSoftInputFromWindow(focused.getWindowToken(), 0);
}

希望它能起作用:)

哇!这很有效,答案来得很快,非常感谢!我搜索了很多,每个人都给出了同样的答案,但都不起作用。我必须等待3分钟,然后我可以将此答案标记为正确答案:)这没有帮助,因为如果键盘不可见,它会使键盘出现。我也尝试过此方法,hideSoftInputFromWindow在我的上下文中从来都不起作用。谢谢你的回答!
View focused = getCurrentFocus();
if (focused != null) {
    InputMethodManager iM = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    iM.hideSoftInputFromWindow(focused.getWindowToken(), 0);
}