小编Seb*_*lis的帖子

Android EditText - 只允许一个小数分隔符

我希望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)

android number-formatting android-edittext

5
推荐指数
1
解决办法
2044
查看次数