使用InputType数字,但将edittext活动文本格式设置为电话号码格式

时间:2019-02-28 04:49:11

标签: android android-edittext phone-number

因此,edittext格式化输入内容的最简单方法是使用电话inputType。问题在于,这给了您除了数字以外的其他一些符号。而且我不希望用户能够输入这些符号。

  • 我试图通过执行android:digits仅听数字,这导致输入不再被格式化。

我有什么办法可以使它起作用?然后编写一个格式化文本的自定义textWatcher。

2 个答案:

答案 0 :(得分:2)

如果您只想在键盘上显示数字,就像此屏幕截图enter image description here

您必须使用numberPassword输入类型而不是phone输入类型

  android:inputType="numberPassword"

但是,当您应用此设置时,由于editTextinputType,因此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());

您的整个问题都会解决。

希望这会对您有所帮助。

答案 1 :(得分:0)

您应该使用Athira指出的方法:

  android:inputType="number"

,如果需要十进制数字,则:

android:inputType="numberDecimal"