Android EditText 增加自定义过滤


在Android中,可以通过对EditText设置setFilters方法,用代码控制EditText的输入长度,或控制输入小数的位数等。

1.设置EditText的输入长度

inputEdit.setFilters(new InputFilter[] { new InputFilter.LengthFilter(length)});  

2.控制输入小数的位数

  1. // 设置小数位数控制   
  2.         InputFilter lengthfilter = new InputFilter() {   
  3.             public CharSequence filter(CharSequence source, int start, int end,   
  4.                     Spanned dest, int dstart, int dend) {   
  5.                 // 删除等特殊字符,直接返回   
  6.                 if ("".equals(source.toString())) {   
  7.                     return null;   
  8.                 }   
  9.                 String dValue = dest.toString();   
  10.                 String[] splitArray = dValue.split("\\.");   
  11.                 if (splitArray.length > 1) {   
  12.                     String dotValue = splitArray[1];   
  13.                     int diff = dotValue.length() + 1 - digLength;   
  14.                     if (diff > 0) {   
  15.                         return source.subSequence(start, end - diff);   
  16.                     }   
  17.                 }   
  18.                 return null;   
  19.             }   
  20.         };   
  21.         inputEdit.setFilters(new InputFilter[] { lengthfilter });  

相关内容