我有一个带有一些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/