How to switch activity and pass data using extras.

Tags: android, career, tutorial, programming
Published: 2022-01-18 06:53:36

## 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