Edittext更改边框颜色始终点击

时间:2016-06-11 09:59:22

标签: java android android-edittext


我有一个edittext,想在onc​​lick后改变边框颜色  点击它后,它显示红色边框颜色。
但是在我再次尝试之后没有任何反应。它仍然是红色的 首先点击红色 - >第二次点击黑色 - >第三次点击红色等等 我该如何解决?

...
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;
                }
            }
        });
    }

1 个答案:

答案 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);
        }
    });