Activar botón al escribir texto en editText android

Tengo un diseño donde tengo algunos edittexts y un botón. Este botón es setEnabled (false). ¿Cómo puedo cambiar su estado cuando el usuario escribe algún texto en edittext? Quiero que cuando el usuario poner algún texto para editar el botón de texto setEnabled en true?

Necesitas usar TextWatcher :

 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @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 } }); 

Es una buena idea también notificar al usuario por qué el botón está deshabilitado.

Utilice un TextWatcher para desactivar / habilitar el botón y también establecer una sugerencia de error para EditText:

mEditText.addTextChangedListener(new EmptyValidator());

 private class EmptyValidator implements TextWatcher { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void afterTextChanged(Editable editable) { if (editable.length() == 0) { mEditText.setError("Required"); mButton.setEnabled(false); } else { mEditText.setError(null); mButton.setEnabled(true); } } } 

Usted necesita comprobar hacia fuera la longitud actual de edittext y que usted consigue de TextWatcher si la longitud mínima one (1) de su EditText o no null entonces setEnabled (verdad); else defecto false.

cheque acondicionado:

 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @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 if(edt.getText().toString().length()<=0) { edt.setError("Required."); btn.setEnable(true); } else { btn.setEnable(true); } } }); 

Con respecto a su código y requisito, el siguiente código debería funcionar bien:

 mEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {} @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {} @Override public void afterTextChanged(Editable string) { if(string.length() > 0) { mButton.setEnabled(true); } else { mButton.setEnabled(false); } } }); 
  • Cambiar el color del botón sin cambiar la forma en android
  • Conversión de un TextView-> Bitmap-> ImageView, y nada aparece
  • Espacio entre el scrollview anidado y la barra de herramientas de colapso android
  • ¿Cómo usar wrap_content con una anchura máxima?
  • Cómo desplazar mi diseño al configurar android: windowSoftInputMode = "adjustPan"?
  • Cambiar el ancho de la disposición lineal en android
  • ScrollView desplazamientos automáticos para seleccionar TextView
  • Asignar propiedad de objeto a listview
  • Comportamiento extraño en el diseño de mi ActionBarActivity
  • Excepción en el diseño de carga: java.util.LinkedHashMap.eldest () Ljava / util / Map $ Entrada;
  • Perder el título de ActionBar al crear un diseño personalizado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.