我已经使用这行代码来隐藏软键盘。它会导致旧 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 版本而导致错误。
或者如果设备没有软键盘会导致错误?
我没有听说过任何没有软键盘的设备,但是我相信如果没有软键盘,您设置的值将被忽略。