使用InputType Number但将edittext实时文本格式化为电话号码格式

问题描述 投票:0回答:2

因此,edittext格式化输入的最简单方法是使用手机inputType。问题是,除了数字之外,这会给你一些其他符号。而且我不希望用户能够输入这些符号。

  • 我试图只通过做android来监听数字:数字由此导致输入不再被格式化。

有什么技巧可以让它发挥作用吗?然后编写一个格式化文本的自定义textWatcher。

android android-edittext phone-number
2个回答
2
投票

如果您只想在键盘中显示数字,就像这个截图enter image description here一样

您必须使用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());

你的整个问题都会解决。

希望这会帮助你。


0
投票

你应该使用Athira指出:

  android:inputType="number"

如果你想要十进制数,那么:

android:inputType="numberDecimal"
© www.soinside.com 2019 - 2024. All rights reserved.