默认情况下,setError
使EditText
看起来如下所示:
有一个红色的感叹号。当特定EditText
获得焦点时,弹出错误消息。
我正在创建自定义setError
方法:
validatedIcon = ContextCompat.getDrawable(getApplicationContext(), R.drawable.validated);
validatedIcon.setBounds(0, 0, validatedIcon.getIntrinsicWidth(), validatedIcon.getIntrinsicHeight());
firstName.setError("Please check your first name",validatedIcon);
我的新错误图标是自定义图标。但我不希望错误消息与它一起显示。我尝试传递null作为消息,但删除了整个图标。我尝试传递空字符串,但这只是一个空盒子。
已尝试替代:我尝试使用setCompoundDrawablesWithIntrinsicBounds
设置图标,但即使经过多次拉动,也无法正常使用。
那么,有没有办法摆脱setError
中的消息框?
答案 0 :(得分:1)
正如Patel Hiren在评论中所建议的,创建一个扩展EditText
并覆盖setError
方法的自定义类,解决了我的问题:
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setError(CharSequence error, Drawable icon) {
setCompoundDrawables(null, null, icon, null);
}
}
另外,在我的布局文件中,我不得不用此类的完全限定名称(EditText
)替换packagename.className
。它运作良好。
答案 1 :(得分:0)
您可以设置firstName.setError(null);
的位置