2016-06-11 9 views
0


Ich habe eine EditText und wollen nach Onclick die Rahmenfarbe ändern.
Nachdem ich darauf klicke es zeigt mir die rote Rahmenfarbe.
Aber nachdem ich es nochmal probiert habe passiert nichts. Es ist immer noch rot.
ersten Klick rot -> zweiten Klick schwarz -> dritten Klick rot und so weiter
Wie kann ich es beheben?EditText Randfarbe ändern immer 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

Sie möchten die Farbe ändern, wenn auf der EditText geklickt oder eine separate Taste? – user5894647

+0

klickst du jedesmal auf den 'edittext'? –

+0

ja das gleiche und die Farbe der Edittext-Grenze –

Antwort

0

In Ihrem Fall statt onFocusChangeListener() können Sie onClickListener() verwenden, wie Sie auf jeden Klick ändern möchten, können Sie etwas tun:

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

gedrückt Ich brauche den onfocuschangelistener, weil die Tastatur –

+0

zu verstecken, wenn Sie die Tastatur verstecken wollen? Irgendwelche spezifischen Bedingungen? –

+0

Die Methode "hidekeyboard" ist fertig. Es verbirgt die Tastatur, wenn ich alles außer dem Edittext –