如何禁用Android EditText的拼写检查

133
我想要移除编辑文本框中文本的下划线。 带有下划线文本的文本框

我该如何做到这一点?


1
你能展示相关的代码吗?你添加了代码还是这只是一个拼写检查的问题? - Raptor
7
禁用拼写检查可以通过设置 android:inputType="textNoSuggestions" 来实现,这可能会让您感到疲惫。 - ρяσѕρєя K
1
请问如何在我的EditText中显示红色下划线? - S HemaNandhini
@SNandhini 使用以下代码:<EditText android:id="@+id/message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType= "textCapSentences|textAutoCorrect" ... /> - Sandah Aung
非常感谢您的回复,Sandah Aung。但是对我来说它不起作用。 - S HemaNandhini
显示剩余2条评论
6个回答

275
你可以用以下代码实现。只需将它粘贴到 EditText 的布局中即可。
android:inputType="textNoSuggestions"

15
我发现设置这个会移除所有的换行符。 - Johann
我使用了浮动EditText并遇到了这个问题,但是你的解决方案对我不起作用。当聚焦于EditText时,应用程序崩溃并显示java.io.IOException: null InputStream。 - Amal Kronz
1
@AmalKronz 这个解决方案只适用于 EditText,未经过浮动 EditText 的测试。(我猜你指的是 TextInputLayout - Chintan Rathod
是的,我指的是TextInputLayout,当错误出现并尝试编辑时,应用程序会崩溃,你能帮我吗?谢谢。 - Amal Kronz
1
小心,这也会禁用键盘建议。 - Saket
非常适用于AppCompatAutoCompleteTextView。 - Michał Powłoka

73
为了取消拼写检查,您需要在XML中指定EditText的InputType,如下所示:
android:inputType="textNoSuggestions"

然而,如果你的EditText是多行的,并且你需要关闭拼写检查,那么你必须在XML中指定EditText的InputType如下:

android:inputType="textMultiLine|textNoSuggestions"

24

对 Chintan 的回答进行了轻微补充 - 也允许使用这种(和其他)组合:
android:inputType="textCapSentences|textNoSuggestions"


14
如果您只想禁用红色下划线(和自动更正对话框),则可以在TextView上覆盖isSuggestionsEnabled()方法。这将保持键盘自动完成的功能。

1
请您提供isSuggestionsEnabled()的建议实现,谢谢。 - Massimo Baldrighi
6
返回 false; - simekadam
1
一个完美的解决方案适用于像“笔记”这样的应用程序 - 您可以写任何自定义单词,而不会出现错误的红色下划线,但仍然可以获得所有建议以更快地输入文本。 - Kirill Karmazin

7

我刚刚为EditText添加了一行代码:

editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);

对我来说,它运行良好。


4

我无法找到直接的方法来做到这一点,所以采用了以下解决方案:

editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

将输入类型设置为可见密码后,即使在设备设置中启用了拼写检查,红色下划线也不会出现。 :)


+1 我也遇到了同样的问题,当我在 EditText 中输入空格(" ")然后逗号(".")时,文本会变成 ". " 而不是我想要的 " ."。按照你建议的添加 "textVisiblePassword" 解决了我的问题,非常感谢 :) - Ariel Yust

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