Here’s a step-by-step guide:
✅ Steps to Share Data Between Activities in Kotlin
1. Create the First Activity (Sender)
This activity will send data to another activity.
// MainActivity.kt
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.widget.Button
import android.widget.EditText
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val editText = findViewById<EditText>(R.id.editTextName)
val button = findViewById<Button>(R.id.buttonSend)
button.setOnClickListener {
val name = editText.text.toString()
// Create intent
val intent = Intent(this, SecondActivity::class.java)
// Put data into intent
intent.putExtra("USERNAME", name)
// Start second activity
startActivity(intent)
}
}
}
2. Create the Second Activity (Receiver)
This activity will receive the data.
// SecondActivity.kt
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
class SecondActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
val textView = findViewById<TextView>(R.id.textViewName)
// Get data from intent
val name = intent.getStringExtra("USERNAME")
// Show the data
textView.text = "Hello, $name!"
}
}
3. Update AndroidManifest.xml
Register the second activity:
<activity android:name=".SecondActivity"></activity>
4. Example Layouts
📌 activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<EditText
android:id="@+id/editTextName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your name"/>
<Button
android:id="@+id/buttonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Send to Next Activity"/>
</LinearLayout>
📌 activity_second.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textViewName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Received Data"
android:textSize="18sp"/>
</LinearLayout>
