奇怪的 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,它都会关闭键盘。
希望对您有所帮助。
我正在写一个 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,它都会关闭键盘。
希望对您有所帮助。