Caso a interface TextWatcher fosse capaz de identificar o EditText de origem, bastava compará-los para executar um único método, semelhante a interface OnClickListener, aonde fazemos:
@Override
public void onClick(View v) {
if( v == firstButton) {
// Do something
} else if ( v == secondButton ) {
// Do something
} else if ( v == thirdButton ) {
// Do something
}
}
Minha pergunta era se seria possível fazer semelhante no TextWatcher:
if( s == firstEditText) {
// Do something
} else if ( s == secondEditText ) {
// Do something
} else if ( s == thirdEditText ) {
// Do something
}
Mas parece que não. Resolvi o problema criando uma classe que implementava a interface TextWatcher e especializando cada caso com herança e polimorfismo.
Abs,
Em 3 de abril de 2012 10:17, Toshi Kurauchi <andrew.kurauchi@gmail.com> escreveu:
Também não entendi direito... O que você vai fazer com o TextWatcher?Bom, se você realmente precisar saber qual EditText você está usando uma das maneiras é passá-lo pelo construtor...
Toshi Kurauchi
2012/4/3 Vinícius Uzêda <vruzeda@gmail.com>Mal que lhe pergunte, mas por que você queria isso se tem que diferenciar a origem da modificação de qualquer jeito?
--
Vinícius Rodrigues de Uzêda
vruzeda@gmail.com
2012/3/30 Leonardo Jobim <leo.jobim@gmail.com>Pessoal,Alguém sabe como usar um únco TextWatcher para vários EditTexts ?Tenho um formulário com vários e não gostaria de replicar comportamentos.A assinatura dos métodos da interface não possue informação quanto ao editText de origem (tipo onClick() tem para View):@Overridepublic void afterTextChanged(Editable s)@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after)@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count)Grato,Leonardo
0 comentários:
Postar um comentário