如何强制EditText只接受数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何强制EditText只接受数字?相关的知识,希望对你有一定的参考价值。

如何强制EditText只接受数字。?

答案

在布局XML中使用android:inputType="number"

另一答案

这也很好:

android:digits="0123456789"
另一答案

或者您可以添加以下内容:

yourEditText.setInputType(InputType.TYPE_CLASS_NUMBER | 
                          InputType.TYPE_NUMBER_FLAG_DECIMAL |
                          InputType.TYPE_NUMBER_FLAG_SIGNED);

这将接受数字,浮点数和负数,您可以根据需要删除任何这些

另一答案

您可以在XML文件中使用android:inputType="number"。您也可以指定其他值,例如numberDecimal。

此外,您可能还想使用android:singleLine="true"作为单行Edittext

另外,看看android:numericandroid:maxLength。 maxLength特别适用于设置长度限制。

另一答案

这是最终的解决方案:

 public static void enforceEditTextUseNumberOnly(EditText field) {
        Typeface existingTypeface = field.getTypeface();
        field.setInputType((InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD));
        field.setTransformationMethod(new NumericKeyBoardTransformationMethod());
        field.setTypeface(existingTypeface);
        if (field.getParent().getParent() instanceof TextInputLayout) {
            ((TextInputLayout) field.getParent().getParent()).setPasswordVisibilityToggleEnabled(false);
        }
    }

  private static class NumericKeyBoardTransformationMethod extends PasswordTransformationMethod {
        @Override
        public CharSequence getTransformation(CharSequence source, View view) {
            return source;
        }
    }

以上是关于如何强制EditText只接受数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何强制editText框格式化缩进替换文本?

EditText 只接受几个字符

如何使用片段将联系人选择到edittext

如何通过单击 EditText 中的按钮逐个添加数字?

设置 EditText 以设置电话号码值

只接受字母并将EditText中的第一个字符大写