PhillipMwaniki
PhillipMwaniki

Reputation: 1245

OnClick Listener with the IF function

I need to create a login password for a user in my android app. The first part compares the setPass and the confirmation pass then saves it in the db. My problem is that else is never run Here is my code below...

  savePass.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
              if(setPass.getText().toString()
!=conPass.getText().toString()){
                Log.d("login", "Checking whether passwords created ok");
                Log.d("login", "setPass: " + setPass.getText().toString());
                Log.d("login", "conPass: " +  conPass.getText().toString());
                error.setText("Passwords do not match!");
            }else{
                Log.d("login", "showing dialog 0 ");
                showDialog(0);
                Log.d("login", "Instantiating loginNew");
                Login login = new Login();

                login.setPassword(setPass.toString());
                Log.d("login", "Adding to db");
                db.addPassword(login);
                Log.d("login", "opening main login form");
                Intent intent = new Intent("com.philsoft.budget.activity_main");
                startActivity(intent);  
            }
        }
    });

Upvotes: 0

Views: 73

Answers (2)

Renjith
Renjith

Reputation: 5803

Do not compare the two string with == operator. Use String.equals() instead.

if(setPass.getText().toString().equals(conPass.getText().toString())){
// your necessary codes

} else {

}

You have to remember, == compares the object references, not the content.

Upvotes: 2

sabadow
sabadow

Reputation: 5161

Try with this:

if(!setPass.getText().toString().equals( conPass.getText().toString()) ){

When use the == or != with objects compares the memory reference, not the actual value. To compare the value should use the equals().

Hope it helps.

Upvotes: 0

Related Questions