用java写一个检验类,再edittext输入时进行判断:1、 第一个edittext限制两位小数,且数值不超过600;2、第二个edittext限制输入三位整数且小于240;
时间: 2023-12-10 17:42:58 浏览: 72
Android中多个EditText输入效果的解决方式
可以参考以下代码实现:
```java
public class InputValidator {
// 检查第一个输入框的值是否符合要求
public static boolean isValidFirstInput(String input) {
try {
double value = Double.parseDouble(input);
if (value < 0 || value > 600) {
return false;
}
String[] parts = input.split("\\.");
if (parts.length > 1 && parts[1].length() > 2) {
return false;
}
return true;
} catch (NumberFormatException e) {
return false;
}
}
// 检查第二个输入框的值是否符合要求
public static boolean isValidSecondInput(String input) {
try {
int value = Integer.parseInt(input);
if (value < 0 || value >= 240) {
return false;
}
String[] parts = input.split("\\.");
if (parts.length > 1) {
return false;
}
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
```
在使用时,可以在 EditText 的 TextWatcher 中进行调用:
```java
EditText firstInput = findViewById(R.id.edittext_first_input);
EditText secondInput = findViewById(R.id.edittext_second_input);
firstInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!InputValidator.isValidFirstInput(s.toString())) {
firstInput.setError("请输入正确的数值");
} else {
firstInput.setError(null);
}
}
@Override
public void afterTextChanged(Editable s) {}
});
secondInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!InputValidator.isValidSecondInput(s.toString())) {
secondInput.setError("请输入正确的数值");
} else {
secondInput.setError(null);
}
}
@Override
public void afterTextChanged(Editable s) {}
});
```
这样,用户在输入时就会实时检测输入是否符合要求,并在输入框下方显示错误提示。
阅读全文