在Android中,可以使用TextInputLayout来创建带有错误图标的文本输入框。以下是一个解决方法的示例代码:
首先,在XML布局文件中添加TextInputLayout和EditText控件:
然后,在Java代码中获取TextInputLayout和EditText的实例,并为EditText设置文本改变的监听器:
TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
EditText editText = findViewById(R.id.editText);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// Do nothing
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Do nothing
}
@Override
public void afterTextChanged(Editable s) {
if (TextUtils.isEmpty(s)) {
textInputLayout.setError("Input is required");
textInputLayout.setErrorEnabled(true);
} else {
textInputLayout.setErrorEnabled(false);
}
}
});
在afterTextChanged方法中,我们检查EditText中的文本是否为空。如果为空,我们将设置错误消息并显示错误图标。如果不为空,我们将禁用错误消息和错误图标。
这样,TextInputLayout始终会根据文本内容显示或隐藏错误图标。
上一篇:Android:TextInputLayout - 自定义提示文字、底部线和错误信息的颜色
下一篇:Android:TextInputLayout在NestedScrollView中无法适应页面大小并阻止页面滚动