Search code examples
kotlinkotlin-android-extensions

How to pass the values from activity to another activity


As I'm learning Kotlin for Android development, I'm now trying the basic programs like hello world and how to navigate from one activity to another activity, there is no issue with this.

When I move from one activity to another, it works fine, but I do not know how to pass the values between the activities.

I tried to set the values in one activity and retrieved them in another activity it does not work.

Please see the code snippet below

This is my main activity where I take the username and password from edit text and setting to the intent:

class MainActivity : AppCompatActivity() {
    val userName = null
    val password = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        button.setOnClickListener {
            val intent = Intent(this@MainActivity,SecondActivity::class.java);
            var userName = username.textø
            var password = password_field.text
            intent.putExtra("Username", userName)
            intent.putExtra("Password", password)
            startActivity(intent);
        }
    }
}

This is my second activity where I have to receive values from the main activity

class SecondActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)
        var strUser: String = intent.getStringExtra("Username")
        var strPassword: String = intent.getStringExtra("Password")
        user_name.setText("Seelan")
        passwor_print.setText("Seelan")
    }
}

Please guide me on how to do this, whether I have some other way to do this in Kotlin if not by intent.


Solution

  • Send value from HomeActivity

    val intent = Intent(this@HomeActivity, ProfileActivity::class.java)
    intent.putExtra("Username", "John Doe")
    
    startActivity(intent)
    

    Get values in ProfileActivity

    val profileName = intent.getStringExtra("Username")