I have some code where I need a \"Create Account\" button to be disabled if an editText field has less than 3 char in it. If the User enters 3 chars, then the button should
You want to use a TextWatcher
This will be triggered each time the text in your EditText
which has this listener
on it has changed. You just attach the listener
to your EditText
like you would any other listener
then override its methods and , from the linked example below, check the length
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
if (s.length() > 2)
{
buttonGenerate.setEnabled(true);
}
else
{
buttonGenerate.setEnabled(true);
}
}
You don't need to check in your onClick()
then, just disable the Button
by default and enable in your onTextChanged()
if the condition is met.
Rewritten
The above could be cleaned up as
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
buttonGenerate.setEnabled((s.length() > 2));
}
I also have changed it to > 2
because I think that's actually what you want but the way you have it is a little confusing. You say "enter three(3)" which sounds like exactly 3 but your code looks different. Anyway, that's easy enough for you to change.
See this answer for an example
Use an onTextChangedListener for the EditText to check the value and disable or enable the button.