android - 如何从 Android 中的 EditText 中删除 getError 消息
问题描述
当用户将该字段保留为空白时,我对EditText使用了setError方法。但是,当用户再次尝试写下密码时,我希望删除该错误红色图标和消息。我尝试了代码中所写的setError(null),但它仍然无法正常工作。
String val = password.getEditText().getText().toString();
if (val.isEmpty()) {
password.setError("Please enter password");
return false;
} else {
password.setError(null);
password.setErrorEnabled(false);
return true;
}
解决方案
您可以使用 TextWatcher 来监视 EditText 值的变化。参考以下代码:
password.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.toString().isEmpty()) {
password.setError("Please enter password");
return false;
} else {
password.setError(null);
password.setErrorEnabled(false);
return true;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});
推荐阅读
- java - QAF 框架错误:无法找到或加载主类 org.testng.remote.RemoteTestNG
- android - AndroidKeyStore KeyStoreException:未初始化的密钥库
- python - 从唯一列表中查找所有子集
- html - 在 Bootstrap 中创建具有 2 列的行中的粘性列
- javascript - 如何使用 Spring boot、mongodb 和 React.js 在另一个集合中使用集合列表?
- python - pyspark数据框父子层次结构问题
- php - 致命错误:未捕获的错误:在 Y 上调用成员函数 X
- 3d - Maxscript netrender 文件名 - 尝试在不附加帧号的情况下保存
- java - 为网格图像提供共享选项
- python - 使用 Asyncio 在 Djano 视图中异步运行 10 个函数