viernes, 28 de enero de 2011

El equivalente al onTextChange en un EditText [Android]

En muchos lenguajes de programación estamos acostumbrados a encontrar un evento del tipo onTextChange que nos permita realizar una acción a medida que el usuario introduce o modifica el contenido de un campo de texto. Esta funcionalidad es la que nos permitiría, por ejemplo, implementar un contador que le diga al usuario cuantos caracteres disponibles le quedan a medida que va tecleando un tuit o un SMS. Pues bien, implementar esta funcionalidad en Android es igualmente posible, solo que de una forma ligeramente diferente a lo que podemos estar acostumbrados.

En mi caso, para la implementaciön para Android de Aleatorizr lo que quería era inhabilitar un botón siempre que el campo de texto estuviese vacío o su contenido fuese 0. Esta implementación se consigue utilizando el método addTextChangedListener y la clase TextWatcher. Este sería el código.

this.edit_limite = (EditText) findViewById(R.id.edit_limite); this.edit_limite.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub Button btn_alea = (Button) findViewById(R.id.btn_alea); if (s.length()==0){ btn_alea.setClickable(false); btn_alea.setEnabled(false); }else { Integer valor = new Integer(s.toString()); if(valor == 0){ btn_alea.setClickable(false); btn_alea.setEnabled(false); } else { btn_alea.setClickable(true); btn_alea.setEnabled(true); } } } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } });

Enlaces:

No hay comentarios:

Publicar un comentario