EditText fica lento quando recebe o focus?

Tenho um método que fiz para quando o edit que tiver em focus receber uma cor

public void AZFocusEdit(final EditText editGeneric, final LinearLayout linear_generic, final OnThinkFocus focus) { editGeneric.setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { if (focus != null) focus.onThinkFocus(v, hasFocus); if (hasFocus) { // linear_generic.setBackgroundColor(Color // .parseColor("#6495ED")); editGeneric.requestFocus(); } else { editGeneric.clearFocus(); // linear_generic.setBackgroundColor(Color.TRANSPARENT); } } }); }

As linhas comentadas é que causam a lentidão, mais preciso colorir as mesmas quando entra no focus, como faço então?

Obrigado.

Não é o fato de ficar dando requestFocus dentro do focusChanged?

Se mais componentes tem o mesmo vai ficar repetindo entre eles.

Achei que uma Thread resolveria…

public void AZFocusEdit(final EditText editGeneric, final LinearLayout linear_generic, final OnThinkFocus focus) { new Thread(new Runnable() { public void run() { editGeneric .setOnFocusChangeListener(new OnFocusChangeListener() { public void onFocusChange(View v, boolean hasFocus) { if (focus != null) focus.onThinkFocus(v, hasFocus); if (hasFocus) { linear_generic.setBackgroundColor(Color .parseColor("#6495ED")); editGeneric.requestFocus(); } else { editGeneric.clearFocus(); linear_generic .setBackgroundColor(Color.TRANSPARENT); } } }); } }).start(); }

Apesar de não saber se fiz certo, mais também não deu certo não.

[quote=Marky.Vasconcelos]Não é o fato de ficar dando requestFocus dentro do focusChanged?

Se mais componentes tem o mesmo vai ficar repetindo entre eles.[/quote]

Olá Marky.Vasconcelos, tem alguma idéia como contornar este problema então? Pois utilizo em mais de um componente.

Apesar que comentei o requestFocus e deixei para colorir e fica lento do mesmo jeito, apenas se eu comentar as linhas de colorir e deixar transparente fica rápido.

Obrigado

Com este exemplo aqui, ja melhorou bem

http://patrickreinan.blogspot.com.br/2012_10_01_archive.html

Em vez de usar o LinearLayout estou usando pintar o EditText.

Voce da um clearFocus também, isso também invoca isso em outro componente, voce deve considerar apenas o hasFocus, pois quem perdeu vai estar false e quem ganhou vai estar true.

[quote=Marky.Vasconcelos]Voce da um clearFocus também, isso também invoca isso em outro componente, voce deve considerar apenas o hasFocus, pois quem perdeu vai estar false e quem ganhou vai estar true.[/quote]Hum, entendi, vou mudar aqui.

Obrigado.