如何将 EditText 长度限制为 7 个整数和 2 个小数位? [英] How to limit EditText length to 7 integers and 2 decimal places?
本文介绍了如何将 EditText 长度限制为 7 个整数和 2 个小数位?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个 EditText
框,它必须允许用户输入最多 7 个数字和两个小数位.输入七位数字后,不应允许再添加一位数字,但我可以允许最多 2 位小数.我使用小数点过滤器保留 2 个小数位,此代码在 XML 中
I have an EditText
box which have to allow user to enter upto 7 numbers and two decimal places. After entering seven digits,it should not allow to add one more digit but i may allow upto 2 decimal places. I use a decimal filter for 2 decimal places and this code in XML
android:maxLength="7"
android:imeOptions="actionDone"
android:inputType="numberDecimal"
但是EditText
允许输入
8 位数字.怎么解决?
But EditText
is allowing to enter
8 digits. How can this be solved?
推荐答案
在 onCreate 下试试
youreditText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(5,1)});
在你的程序中的任何地方
public class DecimalDigitsInputFilter implements InputFilter {
Pattern mPattern;
public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
mPattern=Pattern.compile("[0-9]{0," + (digitsBeforeZero-1) + "}+((\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\.)?");
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
Matcher matcher=mPattern.matcher(dest);
if(!matcher.matches())
return "";
return null;
}
}
这篇关于如何将 EditText 长度限制为 7 个整数和 2 个小数位?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文