如何将 EditText
中的文本显示为全部大写,但保存用户的原始输入?
我试过使用 InputFilter
,但没有成功。
有线索吗?
编辑:
我已经在使用以下代码:
editText.setFilters(new InputFilter[] {new InputFilter.AllCaps()});
问题不在于显示大写字母,问题在于保留原始用户的值。
最佳答案
创建 an implementation of TransformationMethod
,在 getTransformation()
中,您将输入文本转换为全部大写。输入文本本身没有变化; getTransformation()
的返回值是显示给用户的。最常见的 TransformationMethod
是 PasswordTransformationMethod
— 它是输入密码时给你的点。
这可以像创建 a subclass of ReplacementTransformation
一样简单,覆盖 getOriginal()
返回字母和 getReplacement()
返回它们的全大写等价物。
在实现这个时要小心地考虑语言环境,这样无论用户当前使用什么语言,您都可以处理大写。
关于Android 将 EditText 设置为显示大写但保留原始用户输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620908/