Android: 在所有的EditText中禁用软键盘

24

我正在为Android上的对话框工作,其中包含几个EditText。 我在onCreate()中加入了以下代码以禁用软键盘:

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

问题在于它只有在对话框出现且不做任何操作时才起作用。 当我移动到下一个EditText时,键盘出现并且不会消失。

是否有人有解决这个问题的想法?


你为什么想要这个? - Macarse
11
我有自己的按键盘,想要使用它,不想每次点击EditText时弹出软键盘。 - Yaniv
13个回答

0

通过将EditText的focusable属性设置为false,当单击时键盘不会弹出

<EditText
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:focusable="false" />

虽然这段代码可能回答了问题,但最好包括描述或额外信息来说明它所做的事情。 - Jonas Czech
尝试过这个,但即使我在程序中将其设置为true,我仍然无法重新启用它。 - Alex Burdusel

0
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(edSearch.getWindowToken(), 0);

我已经尝试过这个,但当我从对话框(Dialog)继承时,我没有'getSystemService()'方法。 - Yaniv
您可以在构造函数中传递Activity或ApplicationContext。 - Jazz
1
没有帮助,当我移动到下一个EditText时,软键盘仍然会出现。 - Yaniv
1
修改您的清单文件, <activity android:configChanges="keyboardHidden" android:name=".sampleactivity"> </activity> - Jazz

0

为了禁用安卓软键盘,XML文件对我的情况没有帮助。 在Java文件中调用EditText对象的setInputType方法非常有效。 以下是代码。

EditTextInputObj = (EditText) findViewById(R.id.EditTextInput);
EditTextInputObj.setInputType(InputType.TYPE_NULL); 

请不要使用那么多句号。只用一个就可以了。 - Andrew Barber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接