How to pass the values from activity to another activity in kotlin

Jeyaseelan picture Jeyaseelan · Jul 18, 2017 · Viewed 61.2k times · Source

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 in this.

My concern is when I move from one activity to another activity it works fine but I do not know how to pass the values between the activities.

I tired to set the values in one activity and retrieved 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 how to do this, whether if I have some other way to do this in Kotlin if not by intent.

Answer

Sudip Sadhukhan picture Sudip Sadhukhan · Apr 27, 2018

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")