动态禁用EditText的自动大写

时间:2015-06-13 22:14:21

标签: android android-edittext

我正在动态创建EditText,我想禁用任何句子(新行)的自动大写。

我已经为EditText.setInputType(int)尝试了一系列标志,但是没有一个标志能够禁用在新行上启用的shift键。

这是我的代码:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
EditText editText = new EditText(context);
int type = InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE
            | InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE;
if (preferences.getBoolean("disable_suggestions", true)) {
    type |= InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
                | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD;
}
if (preferences.getBoolean("disable_auto_capitalization", true)) {
    //
    // TODO: StackOverflow to the rescue! What flag do I need? 
    //
}
editText.setInputType(type);

我已经广泛搜索了StackOverflow以获得答案,我找到的唯一问题是this

1 个答案:

答案 0 :(得分:0)

正如@CommonsWare指出的那样,你在做什么应该没问题。无法保证所有设备的禁用自动资本化。

如果用户使用的是第三方键盘,例如SwiftKey,它可能会覆盖禁用自动大写;用户必须在第三方应用程序设置中手动执行此操作。