【问题标题】:Use InputType Number but format edittext live text to phone number format使用 InputType Number 但将 edittext 实时文本格式化为电话号码格式
【发布时间】:2019-02-28 04:49:11
【问题描述】:
因此,edittext 格式化输入的最简单方法是使用电话 inputType。问题是这给了你一些除数字之外的其他符号。而且我不希望用户能够输入这些符号。
- 我尝试通过执行 android:digits 仅收听数字,这会导致输入不再被格式化。
我有什么技巧可以让它工作吗?然后编写一个自定义 textWatcher 来格式化文本。
【问题讨论】:
标签:
android
android-edittext
phone-number
【解决方案1】:
如果你只想在键盘上显示数字,就像这个截图
你必须使用numberPassword输入类型而不是phone输入类型
android:inputType="numberPassword"
但是当你应用这个时,editText 中的条目会显示为项目符号,因为 inputType 是 numberPassword,所以要解决这个问题,例如创建一个新的 java 类:
public class NumberKeyPadTransformationMethod extends PasswordTransformationMethod {
@Override
public CharSequence getTransformation(CharSequence source, View view) {
return source;
}}
在您的main activity 中,您可以在其中获取edittext 的ID 或使用edittext 的位置,您只需添加一行代码
editText.setTransformationMethod(new NumberKeyPadTransformationMethod());
你的整个问题都会解决。
希望这会对你有所帮助。
【解决方案2】:
你应该像 Athira 指出的那样使用:
android:inputType="number"
如果你想要十进制数字,那么:
android:inputType="numberDecimal"