AnilkumarJohn
AnilkumarJohn

Reputation: 59

Issues in EditText

My issue is when first EditText length greater than 10 then second EditText will be enabled and second EditText length greater than 8 then after Button will be enabled what is the problem in my code? Please any one can solve this problem.

public void loginPage(View v) {
    editText = (EditText) findViewById(R.id.username);
    editText1 = (EditText) findViewById(R.id.pasword);
    username = editText.getText().toString();
    password = editText1.getText().toString();
    btn = (Button) findViewById(R.id.login1);
    editText1.setEnabled(false);
    btn.setEnabled(false);
    editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() >= 10) {
                editText1.setEnabled(true);
                btn.setEnabled(false);
            }
        }
    });
    editText1.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            if (s.length() >= 8) {
                btn.setEnabled(true);
            }
        }
    });
}

Upvotes: 1

Views: 115

Answers (2)

sushildlh
sushildlh

Reputation: 9056

Use this for the equal or greater than 10 word

paste this method in OnCreate() method

editText.addTextChangedListener(new TextWatcher() {

        @Override
        public void afterTextChanged(Editable s) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start,
                                      int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start,
                                  int before, int count) {
            if (s.length() >= 10)
                editText1.setEnabled(true);
            else
                editText1.setEnabled(false);
        }
    });

and for the button for 8 words

paste this method in OnCreate() method

editText1.addTextChangedListener(new TextWatcher() {
    
            @Override
            public void afterTextChanged(Editable s) {
            }
    
            @Override
            public void beforeTextChanged(CharSequence s, int start,
                                          int count, int after) {
            }
    
            @Override
            public void onTextChanged(CharSequence s, int start,
                                      int before, int count) {
                if (s.length() >= 8)
                    btn.setEnabled(true);
               else
                    btn.setEnabled(false);
            }
        });

enjoy coding .........

Upvotes: 5

Jay Rathod
Jay Rathod

Reputation: 11245

You need to use Text Watcher with Edit Text.

Try this code.

public class Login extends AppCompatActivity {

    EditText editText, editText1;
    Button btn;
    String username, password;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        loginPage();
    }

    public void loginPage()

    {

        editText = (EditText) findViewById(R.id.username);
        editText1 = (EditText) findViewById(R.id.password);
        username = editText.getText().toString();
        password = editText1.getText().toString();
        btn = (Button) findViewById(R.id.login1);
        editText1.setEnabled(false);
        btn.setEnabled(false);
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() >= 10) {
                    editText1.setEnabled(true);
                    btn.setEnabled(false);
                }
            }
        });
        editText1.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() >= 8) {
                    btn.setEnabled(true);
                }
            }
        });
    }
}

EDIT :

Create new function to Change from Login page on Button Click.

public void changeLoginPage(){
     Intent intentNew = new Intent(First.this,Destinatin.this);
     startActivity(intentNew);
}

and add this on onCreate method.

btn.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View v) {
        changeLoginPage();
     }
});

Upvotes: 2

Related Questions