Creating Multiple Screen Applications in Android
This article shows how to create an android application to move from one activity to another using the concept of Explicit Intents. Below are the steps for Creating a Simple Android Application to move from one activity to another activity.
Step By Step Implementation
Step 1: Create a New Project in Android Studio
To create a new project in Android Studio please refer to How to Create/Start a New Project in Android Studio.
The code for that has been given in both Java and Kotlin Programming Language for Android.
Step 2: Working with the First Activity
Next, go to the activity_first.xml file, which represents the UI of the project. Below is the code for the activity_first.xml file. Comments are added inside the code to understand the code in more detail.
activity_main.xml:
<?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"
android:background="@color/white"
tools:context=".FirstActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:text="First Activity"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:text="Next"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Go to the FirstActivity File and refer to the following code. Below is the code for the FirstActivity File. Comments are added inside the code to understand the code in more detail.
MainActivity File:
package org.geeksforgeeks.demo;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class FirstActivity extends AppCompatActivity {
// Declare Button object
private Button nextActivityButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
// Initialize button using findViewById
nextActivityButton = findViewById(R.id.button);
// Set click listener for the button
nextActivityButton.setOnClickListener(v -> {
// Create Intent to start SecondActivity
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
// Start the activity
startActivity(intent);
});
}
}
package org.geeksforgeeks.demo
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class FirstActivity : AppCompatActivity() {
// Add button Move to Activity
private lateinit var next_Activity_button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_first)
// by ID we can use each component which id is assign in xml file
// use findViewById() to get the Button
next_Activity_button = findViewById(R.id.button)
// Add_button add clicklistener
next_Activity_button.setOnClickListener {
// Intents are objects of the android.content.Intent type. Your code can send them to the Android system defining
// the components you are targeting. Intent to start an activity called SecondActivity with the following code.
val intent = Intent(this, SecondActivity::class.java)
// start the activity connect to the specified class
startActivity(intent)
}
}
}
Step 3: Now we have to create another activity (SecondActivity) to move from one activity to another.
Create second activity by right clicking on the current activity and then New > Activity > Empty Views Activity.

Step 4: Working with the Second Activity
Next, go to the activity_second.xml file, which represents the UI of the project. Below is the code for the activity_second.xml file.
activity_second.xml:
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".SecondActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:text="Second Activity"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/next_button"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<Button
android:id="@+id/prev_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:text="Previous"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/next_button"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/next_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:text="Next"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/prev_button"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Go to the SecondActivity File and refer to the following code.
Below is the code for the SecondActivity File. Comments are added inside the code to understand the code in more detail.
SecondActivity File:
package org.geeksforgeeks.demo;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class SecondActivity extends AppCompatActivity {
// Define the global variables for buttons
private Button nextButton;
private Button previousButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// Initialize buttons using findViewById
nextButton = findViewById(R.id.next_button);
previousButton = findViewById(R.id.prev_button);
// Add click listener for next button
nextButton.setOnClickListener(v -> {
// Intent to start ThirdActivity
Intent intent = new Intent(SecondActivity.this, ThirdActivity.class);
// Start the activity
startActivity(intent);
});
// Add click listener for previous button
previousButton.setOnClickListener(v -> {
// Intent to start FirstActivity
Intent intent = new Intent(SecondActivity.this, FirstActivity.class);
// Start the activity
startActivity(intent);
});
}
}
package org.geeksforgeeks.demo
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class SecondActivity : AppCompatActivity() {
// define the global variable
// Add button Move to next Activity and previous Activity
private lateinit var next_button: Button
private lateinit var previous_button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_second)
// by ID we can use each component which id is assign in xml
// file use findViewById() to get the both Button and textview
next_button = findViewById(R.id.next_button)
previous_button = findViewById(R.id.prev_button)
// add click listener
next_button.setOnClickListener {
// Intents are objects of the android.content.Intent type. Your code can send them to the Android system defining
// the components you are targeting. Intent to start an activity called ThirdActivity with the following code.
val intent = Intent(this, ThirdActivity::class.java)
// start the activity connect to the specified class
startActivity(intent)
}
// add click listener
previous_button.setOnClickListener {
// Intents are objects of the android.content.Intent type. Your code can send them to the Android system defining
// the components you are targeting. Intent to start an activity called FirstActivity with the following code
val intent = Intent(this, FirstActivity::class.java)
// start the activity connect to the specified class
startActivity(intent)
}
}
}
Now, we have to create third activity same as the second activity, and the path of this file is also the same as another.
Step 5: Working with the Third Activity
Next, go to the activity_third.xml file, which represents the UI of the project. Below is the code for the activity_third.xml file. Comments are added inside the code to understand the code in more detail.
activity_third.xml:
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
tools:context=".ThirdActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="24dp"
android:text="Third Activity"
android:textSize="24sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/previous_button"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
<Button
android:id="@+id/previous_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/green"
android:text="Previous"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Go to the ThirdActivity File and refer to the following code.
Below is the code for the ThirdActivity File. Comments are added inside the code to understand the code in more detail.
ThirdActivity File:
package org.geeksforgeeks.demo;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
public class ThirdActivity extends AppCompatActivity {
// Declare global variable for the button
private Button previousButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
// Initialize button using findViewById
previousButton = findViewById(R.id.previous_button);
// Set click listener for the button
previousButton.setOnClickListener(v -> {
// Intent to navigate back to SecondActivity
Intent intent = new Intent(ThirdActivity.this, SecondActivity.class);
// Start the activity
startActivity(intent);
});
}
}
package org.geeksforgeeks.demo
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class ThirdActivity : AppCompatActivity() {
// define the global variable
// Add button Move previous activity
private lateinit var previous_button: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_third)
// by ID we can use each component which id is assign in xml
// file use findViewById() to get the Button and textview.
previous_button = findViewById(R.id.previous_button)
// add click listener
previous_button.setOnClickListener {
// Intents are objects of the android.content.Intent type. Your code can send them to the Android system defining
// the components you are targeting. Intent to start an activity called SecondActivity with the following code:
val intent = Intent(this, SecondActivity::class.java)
// start the activity connect to the specified class
startActivity(intent)
}
}
}