小编use*_*966的帖子

Android:在InputFilter上处理退格

我为EditText组件创建了一个InputFilter,它只允许一个范围内的双精度数(例如从1.5到5.5).一切正常,直到我删除小数点:

我键入1.68然后删除小数点.文本字段中的值变为168,显然超出范围.

这是我的过滤器的简化版本

public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        if (isValid(dest.toString() + source.toString())) {
            //input is valid
            return null;
        }else{
          //The input is not valid
            return "";
        }
}
private boolean isValid(String input) {
    Double inputValue = Double.parseDouble(input);
    boolean isMinValid = (1.5 <= inputValue);
    boolean isMaxValid = (5.5 >= inputValue);

    return  isMinValid && isMaxValid;
}
Run Code Online (Sandbox Code Playgroud)

double android android-edittext android-input-filter

3
推荐指数
1
解决办法
1697
查看次数