Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 动态禁用EditText的自动大小写_Android_Android Edittext - Fatal编程技术网

Android 动态禁用EditText的自动大小写

Android 动态禁用EditText的自动大小写,android,android-edittext,Android,Android Edittext,我正在动态创建一个EditText,我想在任何句子(新行)上禁用自动大写 我尝试了多种不同的标志,但没有一种标志能够在新行上禁用shift键 这是我的密码: SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); EditText editText = new EditText(context); int type = InputType.TYPE_CLASS_TEXT |

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

我尝试了多种不同的标志,但没有一种标志能够在新行上禁用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中搜索了大量答案,找到的唯一问题是。

正如@commonware所指出的,您所做的应该是正确的。不可能保证在所有设备上禁用自动资本化


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

正如@commonware所指出的,您所做的应该是正常的。不可能保证在所有设备上禁用自动资本化


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

请理解,
setInputType()
是一个请求,而不是命令,因此并非所有输入法编辑器(又称软键盘)都会满足您的请求。好的,你有的应该没问题。谢谢@commonware提供你的意见。你是说不可能禁用自动资本化吗?不可能保证所有设备都禁用自动资本化。再一次,从我所能告诉你的,你所拥有的应该是好的。如果您正在某台设备上试用,但该设备仍然自动大写,请在官方Android SDK模拟器上试用您的应用程序。如果它在那里正常工作,您就知道您的设备或安装在该设备上的输入法编辑器是问题的根源,对此您无能为力。如果,OTOH,Android SDK emulator也自动大写,那么也许您的代码中还需要一些东西,尽管我不知道是什么。请理解
setInputType()
是一个请求,而不是命令,因此并非所有输入法编辑器(又称软键盘)都会满足您的请求。好的,你有的应该没问题。谢谢@commonware提供你的意见。你是说不可能禁用自动资本化吗?不可能保证所有设备都禁用自动资本化。再一次,从我所能告诉你的,你所拥有的应该是好的。如果您正在某台设备上试用,但该设备仍然自动大写,请在官方Android SDK模拟器上试用您的应用程序。如果它在那里正常工作,您就知道您的设备或安装在该设备上的输入法编辑器是问题的根源,对此您无能为力。如果,OTOH,Android SDK emulator也自动大写,那么也许您的代码中还需要一些东西,尽管我不知道是什么。请理解
setInputType()
是一个请求,而不是命令,因此并非所有输入法编辑器(又称软键盘)都会满足您的请求。好的,你有的应该没问题。谢谢@commonware提供你的意见。你是说不可能禁用自动资本化吗?不可能保证所有设备都禁用自动资本化。再一次,从我所能告诉你的,你所拥有的应该是好的。如果您正在某台设备上试用,但该设备仍然自动大写,请在官方Android SDK模拟器上试用您的应用程序。如果它在那里正常工作,您就知道您的设备或安装在该设备上的输入法编辑器是问题的根源,对此您无能为力。如果,OTOH,Android SDK模拟器也自动大写,那么您的代码中可能还需要一些东西,尽管我不知道是什么。