如何从android中的setError中删除错误消息框?

时间:2016-02-01 09:53:42

标签: android

默认情况下,setError使EditText看起来如下所示:

setError view

有一个红色的感叹号。当特定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中的消息框?

2 个答案:

答案 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);

的位置