Android 更新:这是一个与Swype相关的问题:禁用句子的自动大写';编辑文本中的第一个字符

Android 更新:这是一个与Swype相关的问题:禁用句子的自动大写';编辑文本中的第一个字符,android,Android,我正在实现一个EditText,用于从用户获取RTSPURI。虽然这在功能上不是一个大问题,但我想禁用屏幕键盘的默认行为,其中每个句子的第一个字符都启用了caps键的状态。据我所知,这不能通过android:inputType标志在XML中实现。任何关于如何通过编程实现这一点的建议都会有所帮助 我希望包括代码,但项目的性质阻止我这样做。但我可以说,这里没有任何幻想。EditText本身没有使用其他输入标志,唯一的IME选项是在横向中禁用提取UI的标志。布局是通过XML实现的,而不是通过编程实现的

我正在实现一个EditText,用于从用户获取RTSPURI。虽然这在功能上不是一个大问题,但我想禁用屏幕键盘的默认行为,其中每个句子的第一个字符都启用了caps键的状态。据我所知,这不能通过
android:inputType
标志在XML中实现。任何关于如何通过编程实现这一点的建议都会有所帮助

我希望包括代码,但项目的性质阻止我这样做。但我可以说,这里没有任何幻想。EditText本身没有使用其他输入标志,唯一的IME选项是在横向中禁用提取UI的标志。布局是通过XML实现的,而不是通过编程实现的,因此混合中也没有自定义类或扩展

编辑:
TextView
继承的
android:capitalize
常量不起作用。我特别针对Galaxy标签上的2.2,所以我不知道这是否与三星的操作系统调整有关,或者是否与不推荐使用的
大写
常量有关


编辑2:Swype是不允许使用
大写
常量的罪魁祸首。有人知道有没有一种方法可以让Swype在不通知最终用户禁用Swype的情况下更好地播放吗?

由于EditText是TextView的子类,您应该能够使用配置来更改视图的大小写方案。看起来您可能只能在xml中设置none。

您可以使用从TextView继承的属性。它接受
none
(无大写,这是您想要的)、
句子(每个句子的第一个单词大写)、
单词(每个单词的第一个字母大写)和
字符(所有大写).

将其放入EditText的XML中可以阻止Swype 2.17.59.15552.t100强制大写:


android:inputType=“text | textmailaddress”

我应该提到我尝试过这个,但它似乎不起作用。我怀疑这与
capitalize
常量被弃用以支持
inputType
类有关。抱歉。您是否将此设置为单线条目?否。我也尝试了设置
singleLine=“true”
,但行为没有改变。我开始怀疑Swype可能是罪魁祸首。编辑:确认Swype是罪魁祸首。但我不想告诉客户在发货时禁用Swype。有Swype方面的经验吗?没有,但是如果您想解决这个问题,可以尝试重写onTextChange方法,只需获取文本区域的字符串值并在其上运行toLowerCase()。在上交模拟器之前先测试一下,因为我不确定它不会导致无限循环。这也不起作用,请看我对Nick答案的评论。对不起,哪里说不推荐使用大写?我好像到处都找不到。另外,请确保您没有指定inputType,这可能会覆盖大写设置。您也可以尝试将capitalize=“none”与inputType=“textUri”组合使用,或者只使用“text”来查看结果。这里是TextView中的字段引用的全局大写常量,Google表示该常量已被弃用。我发现问题其实是Swype的问题,而不是弃用。啊,我明白了。令人惊讶的是,这并没有直接出现在TextView文档中。不管怎么说,我相当确定,除了弹出一个对话框建议他们禁用自动大写之外,您对Swype无能为力,这并不是一个好的解决方案。你可能会实现一个TextWatcher,将第一个字母转换成小写。这就是我的想法。谢谢