유효성 검사가 붉은 색으로 보이지 않을 때 제 edittext의 배경색을 변경하고 사용자가이를 수정하기 시작하면 원래 색을 반환합니다.Android EditText Drawable 배경을 복제하는 방법?
글고 그러므로 대신 좋은 둥근 사각형의 못생긴 사각형을 그립니다 때문에, 여기에 작동하지 않습니다 setBackgroundColor()를 사용하여 테두리를 둥글게하고있다.
배경을 저장하고 나중에 복원하려고했습니다. 그리고 새로운 bakground를 사용하여 빨간색으로 칠하십시오. tv.getBackground()은 originalBg 및 errorBg에 동일한 참조를 반환하기 때문에 아래 코드는 작동하지 않습니다. errorBg으로 색상 필터를 설정할 때 나는 실제로 originalBg도 변경합니다.
어떻게 그래서 내가 거기에 색상을 변경할 수 있습니다 errorBg에 배경 개체를 복제 수 있습니까?
final Drawable originalBg = tv.getBackground();
final Drawable errorBg = tv.getBackground(); <-- this does not create a new Drawable, just the same reference
errorBg.setColorFilter(0xFFff6347, Mode.MULTIPLY);
tv.setBackgroundDrawable(errorBg);
tv.invalidate();
tv.addTextChangedListener(new TextWatcher() {
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
tv.setBackgroundDrawable(originalBg);
tv.invalidate();
}
public void afterTextChanged(Editable s) {}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});
그게 전부입니다. 완벽하게 작동했습니다! (tv.getBackgroundDrawable()이 존재하지 않기 때문에 tv.getBackground()를 사용했습니다.) ;-) – ilomambo