How to switch activity and pass data using extras.

How to switch activity and pass data using extras.

In this blog, I'll be explaining how to switch between activities and pass data from the first activity to the second activity using intent extras.

Create Android Studio Project.

Select empty activity while creating the project. one project is ready you will have an empty MainActivity

Create Another Activity

Name your newly created activity as HomeActivity. we have two methods to start new activity one is startActivity() and other is startActivityForResult() each have their own use-cases.

Snippet to use startActivity() method

// create intent object with context and class name of other activity
Intent intent = new Intent(this, HomeActivity.class);
// call startActivity method and pass intent
startActivity(intent);

Passing data

putExtra() method of intent required for passing data

snippet

// put data in intent
intent.putExtra("username", "codewithrish"); // you can pass any primary data type easily

Receiving data in HomeActivity

getStringExtra() method helps us to receive string simlirarily getIntExtra() for receiving integer value so on.

Complete Code Step by Step

Open MainActivity.java paste code

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;

public class MainActivity.java extends AppCompatActivity {

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

        Button button = findViewById(R.id.btn_open_activity);
        button.setOnClickListener(click -> {
            openHomeActivity();
        });
    }

    private void openHomeActivity() {
        // create intent object with context and class name of other activity
        Intent intent = new Intent(this, HomeActivity.class);

        // put data in intent
        intent.putExtra("username", "codewithrish");

        // call startActivity method and pass intent
        startActivity(intent);
    }

}

Open activity_main.xml paste code

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn_open_activity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Go To Home Activity"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Open HomeActivity.java paste code

import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class HomeActivity extends AppCompatActivity {

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

        // get intent
        Intent intent = getIntent();
        // retrieve username from intent
        String username = intent.getStringExtra("username");

        // find text with id
        TextView tvUsername = findViewById(R.id.txt_username);
        //set username to that textview
        tvUsername.setText(username);
    }
}

Open HomeActivity.java paste code

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HomeActivity">

    <TextView
        android:id="@+id/txt_username"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

Run code

Just Run Code you just learn how to switch activity and pass data

Did you find this article valuable?

Support CodeWithRish by becoming a sponsor. Any amount is appreciated!