Barbaros
Barbaros

Reputation: 13

Android EditText when a text entered

I'm quite new in android and I don't know if it's possible that when user enters sth in edittext it trigers another method.

like EDİT When I run this in onCrate it crashes

     protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
        .add(R.id.container, new PlaceholderFragment()).commit();
    }
    anyStringEntered();
}

my methods that checks if there is any change on Edittext

public void anyStringEntered(){
    userName  = (EditText) findViewById(R.id.userNameTextBox);
    userPassword = (EditText) findViewById(R.id.userPasswordTextBox);
    rememberMe= (CheckBox) findViewById(R.id.checkBox1);
    userName.addTextChangedListener(new TextWatcher() {

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


        }
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(!userPassword.getText().toString().equals("") && !userName.getText().toString().equals("")){
                rememberMe.setEnabled(true);
            }else{
                rememberMe.setEnabled(false);
            }

        }
    });
    userPassword.addTextChangedListener(new TextWatcher() {

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


        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            if(!userPassword.getText().toString().equals("") && !userName.getText().toString().equals("")){
                rememberMe.setEnabled(true);
            }else{
                rememberMe.setEnabled(false);
            }
        }
    });
}

Upvotes: 0

Views: 795

Answers (2)

Eliott Roynette
Eliott Roynette

Reputation: 734

It is what you are looking for ?

editTextLogin.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) {
                 if(edittext.gettext()!="")
                            { myMethod(); } 
                         else {
                              myMethod2();
                           }

        }
    };

Upvotes: 0

DroidBender
DroidBender

Reputation: 7892

Use the TextWatcher:

edittext.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {
        //method1()  
    }
    public void beforeTextChanged(CharSequence s, int start, int count, int after){
        //method2()
    }
    public void onTextChanged(CharSequence s, int start, int before, int count){
        //method3()
    }
}); 

Upvotes: 2

Related Questions