我已经使用这行代码来隐藏软键盘。它会导致旧 API 级别的错误吗?我的目标是 API 级别 11 到 17。或者如果设备没有软键盘会导致错误?
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
我已经使用这行代码来隐藏软键盘。它会导致旧 API 级别的错误吗?我的目标是 API 级别 11 到 17。或者如果设备没有软键盘会导致错误?
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
// try this
try {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus()
.getWindowToken(), 0);
} catch (Exception e) {
e.printStackTrace();
}
它会导致旧 API 级别的错误吗?
要回答这个问题,您需要阅读您的类和方法调用的文档。每个类和方法都指示了引入 in 的 API 级别,如下面的屏幕截图所示。
对于您的每个方法调用:
getWindow()
在 API 级别 1 中引入setSoftInputMode()
在 API 级别 3 中引入WindowManager
它LayoutParams
是在 API 级别 1 中引入的SOFT_INPUT_STATE_ALWAYS_HIDDEN
在 API 级别 3 中引入所以不,您的代码不会由于 API 级别 11 到 17 的设备上的 Android 版本而导致错误。
或者如果设备没有软键盘会导致错误?
我没有听说过任何没有软键盘的设备,但是我相信如果没有软键盘,您设置的值将被忽略。