0
我有一個EditText
框,我想改變背景顏色,當字符數大於或等於4時,可繪製的左邊。如我在下面的代碼片段中看到的,我使用了TextWatcher
以捕獲打字事件,並在背景顏色發生變化的時刻,但setCompoundDrawable
不會更改EditText
框中的可繪圖。 我做錯了什麼,或者是某種故障?EditText可繪製的左邊不會被改變
final EditText input = (EditText)view.findViewById(R.id.editText);
input.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) { }
@Override
public void onTextChanged(CharSequence charSequence, int start, int count, int after) { }
@Override
public void afterTextChanged(Editable editable) {
if(editable.length() <= 3){
input.setBackgroundColor(getResources().getColor(R.color.edittext_background_red));
input.setCompoundDrawables(getResources().getDrawable(R.drawable.ic_cross), null, null, null);
}else if(editable.length() >= 4){
input.setBackgroundColor(getResources().getColor(R.color.edittext_background_green));
input.setCompoundDrawables(getResources().getDrawable(R.drawable.ic_tick), null, null, null);
}
}
});
如果有什麼(editable.length()== 3? – pskink
改變之前調用在你的左邊繪製對象
setBounds
,但仍沒有運氣 – kabuto178嘗試setCompoundDrawablesWithIntrinsicBounds – pskink