我希望EditText只允许0123456789.,将逗号和点都改为指定的字符的字符mCurrencyFormatter.getDecimalSeparator().第二部分通过以下filter(...)方法实现InputFilter.但是,我无法强制EditText阻止第二个逗号/点.我想通过这个类中的注释代码来做到这一点,但是它没有用.我知道可以写一个android:inputType="numberDecimal"xml文件,但由于长期存在的android bug,它总是将小数点分隔符识别为点.有谁知道如何防止输入第二个小数分隔符?
InputFilter代码:
class CurrencyInputFilter implements InputFilter {
StringBuilder sb = new StringBuilder();
boolean decimalExists;
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart,
int dend) {
sb.setLength(0);
decimalExists = false;
char c;
// for (int i = 0; i < start - 1; i++) {
// c = source.charAt(i);
// if (Character.toString(c).equals(".") || Character.toString(c).equals(",")) {
// decimalExists = true;
// break;
// }
// } …Run Code Online (Sandbox Code Playgroud)