2016-06-11 481 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 –