奇怪的 Android 软键盘问题

Strange Android Soft Keyboard Issue

我正在写一个 activity,其中有很多 EditText。

他们的inputType是numericDecimal。像这样:Before I click

现在,我想在点击 EditTexts 以外的地方时隐藏软键盘,所以我输入:

public void hideKeyboard(View mView) {
    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService
            (Activity.INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}

点击其他地方后,numericDecimal 软键盘确实消失了。 然而,屏幕上仍然有一个没有自动完成功能的普通软键盘,我完全不知道这是从哪里来的。显示在这里:After I click

那么如何隐藏它们呢?网上常见的方法都不行,我都试过了

提前致谢!

试试这个代码:

public static void setupUI(final View view, final Activity activity) {

    if (view instanceof ViewGroup) {
        view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Utils.hideSoftKeyboard(activity, view);
                return false;
            }
        });
    }

    if (view instanceof ViewGroup) {
        for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
            View innerView = ((ViewGroup) view).getChildAt(i);
            setupUI(innerView, activity);
        }
    }
}

    public static void hideSoftKeyboard(Activity activity, View searchET) {
    try {
        InputMethodManager mgr = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
        mgr.hideSoftInputFromWindow(searchET.getWindowToken(), 0);
    } catch (Exception e) {
        e.printStackTrace();
    }

}

调用 setupUI 函数并在您的 activity 中传递父布局。它将确保无论何时您点击 editText,它都会关闭键盘。

希望对您有所帮助。