Android 开发时,有时用到输入人民币数值的时候,需要输入雷士3.56这样圆角分格式的,
Edittext的InputFilter输入限制可以这样做:
/**
* 输入框限制
* 小数点后只允许输入2位
*
* @param max 最大输入位数
* @return
*/
public static InputFilter[] getInputFilter(int max) {
InputFilter[] inputFilter = new InputFilter[]{new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
if (source.equals(".") && dest.toString().length() == 0) {
return "0.";
}
if (dest.toString().contains(".")) {
int index = dest.toString().indexOf(".");
int length = dest.toString().substring(index).length();
if (length == 3) {
return "";
}
}
return null;
}
}, new InputFilter.LengthFilter(max)};
return inputFilter;
}