vendredi 17 avril 2020

Unable to use boolean values in IF statements

I have a database that is being checked using a Cursor. This database compares the data in the database to the user entered username and password. If they match data in the database a boolean is returned true. I can use a toast to output the boolean which correctly outputs as true or false if the input data does or does not match.

However, i am trying to use the boolean to move to the next activity. If the boolean is true the next intent is started. This does not work for some reason and I cant seem to work out why. Any help would be great. Thanks!

public Button btnLogin, btnSignup;
public EditText UsernameInput, PasswordInput;
public DatabaseHelper db;
public static String passUser, passPass, passFirst, passSecond;
public int count;
public Boolean matchingUser = false;

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

    // Allign page and remove notification bar
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

    // Define everything
    btnLogin =  findViewById(R.id.btnLogin);
    btnSignup =  findViewById(R.id.btnSignup);
    UsernameInput =  findViewById(R.id.UsernameInput);
    PasswordInput =  findViewById(R.id.PasswordInput);
    db = new DatabaseHelper(this);

    // validation button
    btnLogin.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            validateLogin(UsernameInput.getText().toString(), PasswordInput.getText().toString());
        }
    });
    btnSignup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            CreateUser();
        }
    });
}
// Validation code
public void validateLogin(String userName, String userPassword)
{
    if (userName.equals("")|| userPassword.equals(""))
    {
        Toast.makeText(getApplicationContext(),"Fields are empty",Toast.LENGTH_SHORT).show();
    }
    else
    {
        // CHECKING USER LOGIN DETAILS
        Cursor cursor = db.CompareUserData();
        for (count = 0; count<=cursor.getCount();count++)
        {
            if (cursor.moveToPosition(count))
            {
                if (UsernameInput.getText().toString().equals(cursor.getString(0))&&PasswordInput.getText().toString().equals(cursor.getString(1)))
                {
                    matchingUser = true;
                }
            }

            Toast.makeText(this, "boolean : "+ matchingUser, Toast.LENGTH_SHORT).show();

            if (matchingUser = true)
            {
                passUser = cursor.getString(0);
                passPass = cursor.getString(1);
                passFirst = cursor.getString(2);
                passSecond = cursor.getString(3);

                getUser();
                getPass();
                getFirst();
                getSecond();

                Toast.makeText(getApplicationContext(), "Successfully logged in", Toast.LENGTH_SHORT).show();
                LoginValidation(); 
            }

            if (matchingUser = false)
            {
                Toast.makeText(getApplicationContext(),"Incorrect Username",Toast.LENGTH_SHORT).show();
            }}
    }
}
private void LoginValidation()
{
    // Changing activity code
    startActivity(new Intent(MainActivity.this,Login_Biometrics.class));
}
private void CreateUser()
{
    // Changing activity code
    startActivity(new Intent(MainActivity.this,createUser.class));
}
public static String getUser ()
{

    return passUser;
}
public static String getPass ()
{


    return passPass;
}
public static String getFirst ()
{

    return passFirst;
}
public static String getSecond ()
{


    return passSecond;


}

Aucun commentaire:

Enregistrer un commentaire