gpt4 book ai didi

android - 十进制输入过滤器android

转载 作者:行者123 更新时间:2023-11-29 01:20:30 24 4
gpt4 key购买 nike

我想制作一个 EditText 以采用十进制值,其中允许小数点后 2 位数字(可选)。值可以是:

xxxx

xxxx.x

xx.xx

.xx

.x

x.x

我已经尝试了很多在 S/O 中找到的解决方案,并且找到了合适的正则表达式来满足我的解决方案。但是没有一个能满足我的要求。一些解决方案满足要求但不允许在小数点之前进行编辑。假设,当edittext值为.xx时,小数点(.)前不能编辑。

谁能指出正确的解决方案。

注意:在 EditText 中使用 maxLength 属性。

最佳答案

试试这个,

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.setFilters(new InputFilter[] { new DecimalDigitsInputFilter(10, 2) });

关于android - 十进制输入过滤器android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37048790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com