【发布时间】:2015-06-22 08:36:22
【问题描述】:
我在 Android 5 中有一个非常奇怪的问题。如果用户输入错误,我想将错误设置为 edittext 并将其颜色更改为红色,当用户开始输入内容时,我想将颜色改回绿色。我就是这样做的:
eText.setError(message);
eText.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
eText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
eText.getBackground().setColorFilter(
ctx.getResources().getColor(R.color.dark_green), PorterDuff.Mode.SRC_ATOP);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {}
@Override
public void afterTextChanged(Editable s) {}
});
在低于 5 的 android 版本中,一切正常,但在 Lollipop 中则不然。如果我更改一种编辑文本颜色,所有应用程序中的所有编辑文本都会更改它的颜色。有什么办法可以解决这个奇怪的事情吗?或者是一些我不知道的材料设计和 Android 5 技巧?
【问题讨论】: