我有一个edittext,想在onclick后改变边框颜色
点击它后,它显示红色边框颜色。
但是在我再次尝试之后没有任何反应。它仍然是红色的
首先点击红色 - >第二次点击黑色 - >第三次点击红色等等
我该如何解决?
...
boolean focus = false
...
private void setOnFocusChangeListener(final EditText editText) {
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (!hasFocus) {
editText.setBackgroundResource(R.drawable.black);
focus = false;
} else if (hasFocus) {
editText.setBackgroundResource(R.drawable.red);
focus = true;
} else if ((hasFocus) && focus) {
editText.setBackgroundResource(R.drawable.black);
focus = false;
}
}
});
}
答案 0 :(得分:0)
在您的案例中,您可以使用onFocusChangeListener()
而不是onClickListener()
,因为您想要在每次点击时更改,您可以执行以下操作:
int res = R.drawable.black; // Your default background
etEmailAdress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (res == R.drawable.black) {
res = R.drawable.btn_green;
} else {
res = R.drawable.black;
}
etEmailAdress.setBackgroundResource(res);
}
});