EditText
的背景色填充有我尝试过的输入(如果已聚焦)时我想更改的背景色
我尝试过android:state_focused
的工作原理,如果聚焦,它会发出黄色背景,现在我希望填充时也会发生同样的事情。
如果焦点状态的背景颜色填充后发生了变化,则应该会发生同样的情况。
答案 0 :(得分:0)
您可以使用如下所示的edittext的OnTextChanged:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (editable.length()>0){
//chnage the edittext background color if filled
}else {
//chnage the edittext background color if not filled
}
}
});
答案 1 :(得分:0)
您可以使用TextWatcher来了解您的edittext是否充满文本,如果文本长度> 0,则可以更改其颜色。
在科特林:
yourEt.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
}
override fun afterTextChanged(p0: Editable?) {
when (p0?.length) {
0 -> yourEt.setBackgroundColor(Color.parseColor("#FFFFFF"))
else -> yourEt.setBackgroundColor(Color.parseColor("#FFFFCB"))
}
}
})
在Java中:
yourEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if (editable.length()>0){
//chnage the edittext background color if filled
yourEt.setBackgroundColor(Color.parseColor("#FFFFCB"))
}else {
//chnage the edittext background color if not filled
yourEt.setBackgroundColor(Color.parseColor("#FFFFFF"))
}
}
});
答案 2 :(得分:-1)
我现在不了解它在android中的工作方式。但是,如果您尝试检查是否失去焦点,如果文本框长度> 0,则文本框背景色=黄色。