仅当在任何编辑文本外单击时才隐藏数字键盘

Hide Numeric Keyboard ONLY WHEN clicked outside any of the Edit Text

我有三个不同的编辑文本,只能输入数值,因此点击任何一个编辑文本都会打开数字键盘。

我尝试为所有编辑文本实现 setOnFocusChangeListener,以确保当用户点击任何编辑文本之外的任何地方时隐藏键盘。

editText1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            hideKeyboard(v);
        }
    }
});

editText2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            hideKeyboard(v);
        }
    }
});

editText3.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            hideKeyboard(v);
        }
    }
});

这里是 'hideKeyBoard'

的实现
public void hideKeyboard(View view) {
        InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), 0);
    }

这很好用,但是,当我将焦点从一个 EditText 切换到另一个 EditText 时,键盘隐藏了。这种行为可能会让用户感到沮丧。

如何处理,避免不必要的隐藏键盘。

P.S 我需要确保键盘在任何情况下都是数字而不是字母。

感谢 MarianoZorrila 纠正我解决问题的方法。
这是我为解决这个问题所做的更改。

  1. 为我的相对布局提供了一个 ID

    <RelativeLayout
    ...
    ...
    android:id="@+id/parent">
    
  2. 对 Java 文件的修改

    View parent = findViewById(R.id.parent);
    parent.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            if(hasFocus){
                hideKeyboard(view);
            }
        }
    });