Android 将 EditText 设置为显示大写但保留原始用户输入值

标签 android android-edittext uppercase

如何将 EditText 中的文本显示为全部大写,但保存用户的原始输入?

我试过使用 InputFilter,但没有成功。

有线索吗?

编辑:

我已经在使用以下代码:

editText.setFilters(new InputFilter[] {new InputFilter.AllCaps()});

问题不在于显示大写字母,问题在于保留原始用户的值。

最佳答案

创建 an implementation of TransformationMethod ,在 getTransformation() 中,您将输入文本转换为全部大写。输入文本本身没有变化; getTransformation() 的返回值是显示给用户的。最常见的 TransformationMethodPasswordTransformationMethod — 它是输入密码时给你的点。

这可以像创建 a subclass of ReplacementTransformation 一样简单,覆盖 getOriginal() 返回字母和 getReplacement() 返回它们的全大写等价物。

在实现这个时要小心地考虑语言环境,这样无论用户当前使用什么语言,您都可以处理大写。

关于Android 将 EditText 设置为显示大写但保留原始用户输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620908/

相关文章:

java - C2DM寄存器频率

android - 获取Android通知面板宽度

css - 大写字符/单词的伪选择器?

c - 读取未知大小/长度的文件,剥离非字母字符,并将大写更改为小写

android - SmsRetriever 可以在 Android 模拟器上运行吗?

android - Asus MeMo Pad - Android 应用程序调试

android - 如何数据绑定(bind)edittext属性android :enabled with viewmodel data?

android - 设置在 Android 中动态添加的 EditText 的属性

java - 按下按钮时清除编辑文本

c# - 在 UWP (Windows 10) 中强制文本框为大写