【问题标题】: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 中的条目会显示为项目符号,因为 inputTypenumberPassword,所以要解决这个问题,例如创建一个新的 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"
    

    【讨论】:

      猜你喜欢
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多