Активировать кнопку при записи текста в editText android

У меня есть макет, где у меня есть несколько редакторов и одна кнопка. Эта кнопка установлена ​​в значениеEnabled (false). Как я могу изменить его статус, когда пользователь пишет текст в edittext? Я хочу, когда пользователь поместил текст для редактирования текстовой кнопки setEnabled на true?

Вам нужно использовать 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 } }); 

Хорошая идея также сообщить пользователю, почему кнопка отключена.

Используйте TextWatcher для отключения / включения, а также установите подсказку об ошибке для 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); } } } 

Вам нужно проверить текущую длину edittext и получить из TextWatcher, если минимальная длина вашего EditText (1) или нет null, а затем setEnabled (true); Else default false.

Проверьте кондиционер:

 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); } } }); 

Что касается вашего кода и требования, приведенный ниже код должен работать нормально:

 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); } } });