Skip to content Skip to sidebar Skip to footer

Disable Button When Edit Text Fields Empty

I have two text fields and a Button. I want to disable the Button unless both EditText-Fields are not empty. I tried many solutions here at stackoverflow, but they don't work. Here

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"