EditText setError()删除右侧的可绘制对象

3

我在XML中写了一个EditText:

<EditText android:id="@+id/create_benefit_add_titale" style="@style/promotion_create_promotion_add_title_bcg" android:drawableRight="@drawable/promotion_create_promotion_plus_icn" android:hint="@string/create_benefit_add_titale" />

当调用setError("sss")时,drawableRight会发生改变。

我希望在调用setError(null)后,drawableRight可以返回drawable/promotion_create_promotion_plus_icn

在Java代码中:

@Override public void afterTextChanged(Editable s) { ((EditText) getCurrentFocus()).setError(null); }

谁能帮帮我?


请将整个代码粘贴在此处(包括EditText的XML),然后我们可以看看能做些什么。 - g00dy
我不明白你的问题??是缺少drawable right还是你想要dismiss它??请给我一些明确的信息。 - kalyan pvs
你试过我的答案了吗?请试一下并告诉我它是否对你有帮助。 - Saran
这是一个不错的答案,但不适合我。因为我有很多EditText,并且每个都有自己的图片。 - user1882196
2个回答

5
问题在于setError(null)也会清除图标。 要恢复原始图标,请通过编程方式添加它:
@Override public void afterTextChanged(Editable s) {
  EditText edit = (EditText) getCurrentFocus();
  edit.setError(null);
  edit.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.promotion_create_promotion_plus_icn, 0);
}

1

您必须将 EditText 包装在一个 TextInputLayout 中,并为 textInputLayout 设置错误,而不是 editText


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接