100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Android开发之设置Edittext小数点后两位以及限制位数同时使用

Android开发之设置Edittext小数点后两位以及限制位数同时使用

时间:2021-04-28 10:37:59

相关推荐

Android开发之设置Edittext小数点后两位以及限制位数同时使用

这是公司项目开发中用到的

package com.Yhsh.mobile.cash.cashout;import android.text.InputFilter;import android.text.Spanned;import com.Yhsh.mobile.basic.util.LogUtils;/*** 限制输入小数点位数,以及开头不允许输入*/public class DecimalDigitsInputFilter implements InputFilter {/*** 限制小数位数*/private final int decimalDigits;public DecimalDigitsInputFilter(int decimalDigits) {this.decimalDigits = decimalDigits;}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {int dotPos = -1;int len = dest.length();for (int i = 0; i < len; i++) {char c = dest.charAt(i);if (c == '.' || c == ',') {dotPos = i;break;}}if(source.equals(".") && dstart==0 && dend==0){return "";}if (dotPos >= 0) {// protects against many dotsif (source.equals(".") || source.equals(",")) {return "";}// if the text is entered before the dotif (dend <= dotPos) {return null;}if (len - dotPos > decimalDigits) {return "";}}return null;}}

看下如何调用:

etPrice.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(2), new InputFilter.LengthFilter(8)});

我们看下效果图:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。