我的注册活动中有4 EditText
个。当用户填写表单并移动到下一个字段时,我验证前一个字段。如果它是正确的,我会添加刻度图标。如果不正确,我会输入标准错误图标。
我已经覆盖了setError
方法来实现它。这是因为默认情况下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);
}
}
所以,我的问题是:当我传递的图标与我的刻度图标不匹配时,我怎么能使用setError
的原始行为。
PS:我尝试使用setCompoundDrawablesWithIntrinsicBounds
进行正确验证,使用setError
进行错误验证。但是,这给了我不一致的错误。这就是为什么我决定仅使用setError
进行验证的原因。
答案 0 :(得分:0)
使用消息编写自定义setCustomError方法,并在其中调用编辑文本的values
覆盖方法。