我有一个包含EditText(inputType="number"
)的对话框。关闭对话框后,我想隐藏键盘,如果对话框的EditText在某个时刻处于Focus状态,则会打开键盘。
现在问题是我有一种方法可行(至少在一些Nexus设备上),除了三星设备(至少S2,S3)。
final InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
在其他设备上,键盘(仅限数字)在对话框后关闭。
在三星设备上,键盘只需更改为带有所有字母的键盘(inputType="text")
,而不是inputType="numbers"
的键盘。我希望它能够关闭/隐藏。
我做不了类似的事情
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN)
对于后台的活动,因为我也需要一个键盘。
有谁知道如何处理这个三星特有的问题?
答案 0 :(得分:4)
使用此代码
InputMethodManager inputMethodManager=(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
答案 1 :(得分:1)
我没有三星设备来测试我的代码,但我正在使用EditText中的WindowToken来隐藏SoftKeyboard。 我的代码看起来像这样:
View focused = getCurrentFocus();
if (focused != null) {
InputMethodManager iM = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
iM.hideSoftInputFromWindow(focused.getWindowToken(), 0);
}
希望它有效:)