Android (Milestone/Droid): View.onKeyListener não está funcionando corretamente?
Pergunta
Estou usando um simples EditText
e registrar um View.OnKeyListener
. Algumas alterações na GUI devem acontecer (desbotamento dentro/fora de visualizações) quando determinadas condições para o texto EditView se aplicam. No emulador, isso funciona conforme o esperado. No Motorola Droid/Milestone, o ouvinte não funciona, apenas
- Depois de pressionar Del, o ouvinte é chamado pela primeira vez e sempre depois
- Ao ativar a entrada do número, o ouvinte funciona corretamente
NOTA: Desativei as sugestões com type_text_flag_no_suggestions e usei a ação IME IME_ACTION_GO para ter uma solução alternativa para isso (caso contrário, o usuário não poderia "iniciar" uma solicitação).
Solução
Encontrou uma maneira melhor e funcional de implementar isso: use EditText.addTextChangedListener
com um TextWatcher
classe (e implementar TextWatcher.onTextChanged(CharSequence s, int start, int before, int count)
), funciona perfeitamente também no marco/dróide.
Outras dicas
O TextWatcher não pode substituir completamente o OnKeyListener. Por exemplo, se sua caixa de texto estiver vazia, como você detectaria esse usuário pressionado Del Tecla? Ou, e se você não tiver caixa de texto e deseja detectar eventos importantes?