2016-06-11 267 views
0


我有一个edittext,并希望在onclick后更改边框颜色。
当我点击它后,它显示我红色的边框颜色。
但我再次尝试后没有任何反应。它仍然是红色的。
第一次点击红色 - >第二次点击黑色 - >第三次点击红色等等
我该如何解决它?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

你想改变颜色上的EditText点击时或单独的按钮? – user5894647

+0

你每次都点击相同的'edittext'吗? –

+0

是的相同和edittext边界的颜色 –

回答

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); 
     } 
    }); 
+0

我需要onfocuschangelistener,因为当您要隐藏键盘时隐藏键盘 –

+0

?任何特定的情况? –

+0

隐藏式键盘方法已准备就绪。它隐藏了键盘,如果我触摸除edittext –