AlertDialog中EditText的拼写检查功能无法正常工作
解决AlertDialog中EditText拼写检查失效的问题
我完全懂这种卡好几晚的憋屈感!你说的这个情况确实和AlertDialog的特性有关——因为Dialog的View宿主环境和普通Activity里的View不一样,默认的拼写检查配置可能没被正确继承下来。下面给你几个可行的解决方案:
显式为EditText开启拼写检查属性
即使全局拼写检查是开启的,AlertDialog里的EditText可能需要单独明确配置。你可以在布局文件里给EditText加上这些属性:<EditText ... android:spellCheckEnabled="true" android:inputType="textAutoCorrect|textCapSentences" />或者在代码里动态设置:
EditText editText = dialogView.findViewById(R.id.your_edit_text); editText.setSpellCheckEnabled(true); editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);检查AlertDialog的创建上下文
如果你是用getApplicationContext()来创建AlertDialog,换成当前Activity的Context试试。因为Application Context缺少一些Activity级别的配置,可能导致拼写检查服务无法正常绑定到EditText上。正确的创建方式应该是:AlertDialog.Builder builder = new AlertDialog.Builder(YourActivity.this);排查自定义Dialog主题的影响
如果你用了自定义的AlertDialog主题,检查主题里有没有禁用拼写检查的配置,比如是否存在android:disableSpellCheck="true"这类属性,有的话删掉或者改成false。
这些方法应该能帮你解决问题,毕竟其他EditText正常工作,说明全局拼写检查没问题,就是Dialog里的View没拿到正确的配置~
内容的提问来源于stack exchange,提问作者Bridger Burt
相关产品推荐
相关产品推荐

