Disable Button When Edit Text Fields Empty
Solution 1:
Your problem is here:
//set listeners
editText1.addTextChangedListener(textWatcher);
editText1.addTextChangedListener(textWatcher);
You are not setting the textWatcher to editText2, so you are always checking the condition if you write inside editText1
Solution 2:
I know this is old, but keep in mind that by simply using .isEmpty()
will allow you to only add a space and the button will enable itself.
Use s1.trim().isEmpty || s2.trim().isEmpty()
instead.
Or, you can do:
String s1 = editText1.getText().toString().trim()
String s2 = editText2.getText().toString().trim()
then just check for .isEmpty()
.
I don't know, it's however you'd want to do it, and this answer is most likely irrelevant anyway but I'd thought I'd just point that out.
Solution 3:
You method checkFieldsForEmptyValues
is too complicated for what your doing, try just by doing :
privatevoidcheckFieldsForEmptyValues(){
Buttonb= (Button) findViewById(R.id.btnRegister);
Strings1= editText1.getText().toString();
Strings2= editText2.getText().toString();
if (s1.length() > 0 && s2.length() > 0) {
b.setEnabled(true);
} else {
b.setEnabled(false);
}
}
Solution 4:
A different way to do this would be
b.setEnabled(!s1.trim().isEmpty() && !s2.trim().isEmpty());
Solution 5:
You may resolve this problem a much shorter:
@OverrideprotectedvoidonResume() {
super.onResume();
TextWatchertw=newTextWatcher() {
@OverridepublicvoidbeforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
@OverridepublicvoidonTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
@OverridepublicvoidafterTextChanged(Editable editable) {
updateSignInButtonState();
}
};
editLogin.addTextChangedListener(tw);
editPassword.addTextChangedListener(tw);
}
private void updateSignInButtonState() {
buttonSignIn.setEnabled(editLogin.getText().length() > 0 &&
editPassword.getText().length() > 0);
}
Post a Comment for "Disable Button When Edit Text Fields Empty"