如何强制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:numeric
和android: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只接受数字?的主要内容,如果未能解决你的问题,请参考以下文章