gpt4 book ai didi

Android:处理 InputFilter 上的退格键

转载 作者:太空宇宙 更新时间:2023-11-03 12:18:08 24 4
gpt4 key购买 nike

我为 EditText 组件创建了一个 InputFilter,它只允许在一个范围内(例如从 1.5 到 5.5)出现 double 值。一切正常,直到我删除了小数点:

我输入了 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;
}

最佳答案

我解决了我的问题。这是解决方案,以防其他人需要它:

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
if (source.equals("") && dest.toString().length() != 1) {
//backspace was clicked, do not accept that change,
//unless user is deleting the last char
CharSequence deletedCharacter = dest.subSequence(dstart, dend);
return deletedCharacter;
}
return "";
}

关于Android:处理 InputFilter 上的退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27151389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com