Depleted Money
Depleted Money

Reputation: 29

Kotlin Android Studio - "If" is not executing in correct condition

I am trying to make a simple Kotlin program of sign in page. The concept here was that this page will get the intent extras coming from the register page and use them to verify if the user logged in with the same registered username and password which would then bring the user to the main page of the app. The problem is that when the user actually does put the correct input, the intent won't execute (or rather the if gate).

At first I thought that the nullsafe strings were the problem when I took the intent data from the register page and so I converted the variable into a string.

But it was still no bueno so I'm not sure what is the wrong here.

Upvotes: 0

Views: 320

Answers (1)

Ivo
Ivo

Reputation: 23144

You are initializing the username and userPass at creation of the screen so they will be always empty String. Try moving them to inside the listener so they actually will be read out when you click the button. Like

val intent = intent
val registeredUsername = intent.getStringExtra("RegisteredUsername").toString()
val registeredPassword = intent.getStringExtra("RegisteredPassword").toString()

signInbtn.setOnClickListener{
    val username = usernameInput.text.toString()
    val userPass = passwordInput.text.toString()

    Toast.makeText(applicationContext, "username is: $registeredUsername", Toast.LENGTH_LONG).show()
    Toast.makeText(applicationContext, "password is: $registeredPassword", Toast.LENGTH_LONG).show()
    if ((username == registeredUsername) && (userPass == registeredPassword))
    {
        val moveMainPage = Intent(this@SignIn, MainPage::class.java)
        startActivity(moveMainPage)
    }
    else
    {
        invalideUserText.visibility = View.VISIBLE
        invalidPassword.visibility = View.VISIBLE
    }

}

Upvotes: 1

Related Questions