我有一个带有一些EditText字段和一些按钮的Activity,以方便通常用来填充这些字段的内容。但是,当我们用户触摸EditText字段之一时,Android软键盘会自动出现。我希望它默认情况下保持隐藏状态,除非用户长按菜单按钮。我正在寻找解决方案,并找到了几个答案,但是到目前为止,我无法使它们正常工作。

我尝试了以下方法:

1-在onCreate方法中,

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

2-同样在onCreate方法中,
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

3-并在 list 文件中,
<activity android:name=".activityName" android:windowSoftInputMode="stateAlwaysHidden"/>

这些方法均无效。每当用户单击EditText字段时,就会出现软键盘。我只希望软键盘在用户长按菜单键显式显示时显示。

为什么这不起作用?

最佳答案

这对你有帮助

editText.setInputType(InputType.TYPE_NULL);

编辑:

要显示软键盘,您必须在long key press event of menu button中编写以下代码
editText.setInputType(InputType.TYPE_CLASS_TEXT);
            editText.requestFocus();
            InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            mgr.showSoftInput(editText, InputMethodManager.SHOW_FORCED);

关于android - 如何在EditText上隐藏Android软键盘,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8997225/

10-10 07:57