这是我正在尝试的代码:
public void onTextChanged(CharSequence s, int start, int before, int count) {
try {
String strEnteredVal = edtMaxAge.getText().toString();
if(!strEnteredVal.equals("")) {
int num = Integer.parseInt(strEnteredVal);
if (num < 125) {
edtMaxAge.setText(num);
} else {
Toast.makeText(getContext(), "max age should be less than 125 ", Toast.LENGTH_SHORT).show();
edtMaxAge.setText("");
}
}
} catch (NumberFormatException ex) {
// Do something
}
}
当我输入大于等于 125 的数字时,我需要显示一条弹出消息,例如“最大年龄应小于 125”,而不接受这些字符。
最佳答案
很可能你正面临一种无休止的递归,当你输入一些文本时 onTextChanged
方法被调用并执行这一行 edtMaxAge.setText(num);
这再次触发 onTextChanged
。
尝试使用InputFilter而不是 TextWatcher。 Here你可以找到一个例子。
关于android - 如何限制我的 edittext 允许输入 0-125,而不允许输入大于 125 的任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45729097/