![]() |
Read later
Save important notes and articles from internet using arusaquotes app.
In Android development, it is common to open a new activity when a button is clicked. This can be achieved using Kotlin, a popular programming language for Android development.
In this article, we will explain how to open a new activity on button click using Kotlin, along with a detailed example.
Create Project
Open Android Studio and create a new project. After gradle build successful, go to File > New > Activity > Empty Activity. Give the activity name NewActivity and Finish to create one more activity.
Creating a New Activity
Before we can open a new activity on button click, we first need to create the activity. To do this, follow these steps.
Right-click on the app folder in the project structure view, and select New -> Activity -> Empty Activity. Give the new activity a name NewActivity and click Finish.
Now that we have created the new activity, we can move on to opening it on button click.
Opening the New Activity
To open the new activity on button click, we need to first define the button in the XML layout file, and then add a click listener to the button in the Kotlin code.
Defining the Button in the XML Layout File
To define the button in the XML layout file, go to app > resource > layout > activity_main.xml. Add a button and a supportive textview. Here is the final xml code of activity_main.xml.
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/supportText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:gravity="center"
android:text="Click on button to open new activity."
android:textColor="@color/black"
android:textSize="28sp" />
<Button
android:id="@+id/openButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Open"
android:textSize="24sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
Here, we have given the button an ID of openButton and set its text to Open.
Now we are going to create an XML layout for the newly created activity. In the layout, we want to show a welcome text.
When the user opens the new activity on button click, the welcome text will appear on the new screen. Let's see how to do that.
Go to app > resource > layout > activity_new.xml. Add a textview. Here is the activity_new.xml. Copy the following code and paste it into the activity_new.xml file.
<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".NewActivity">
<TextView
android:id="@+id/welcomeText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="30dp"
android:gravity="center"
android:text="Welcome to NewActivity"
android:textColor="@color/black"
android:textSize="28sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
Adding a Click Listener
To add a click listener to the button in the Kotlin code, first, we need to get a reference to the button using its ID. We can do this using the findViewById() method.
Then, we can add a click listener to the button using the setOnClickListener() method. Inside the click listener, we can create an intent to start the new activity using the Intent class and the startActivity() method.
Go to app > java > com.example.startactivity > MainActivity.kt and put the following code after initializing button.
// Open new activity on button click
openButton.setOnClickListener {
val intent = Intent(this, NewActivity::class.java)
startActivity(intent)
}
Here, we have first obtained a reference to the button using its ID "openButton". Then, we have added a click listener to the button using the setOnClickListener() method.
Inside the click listener, we have created an intent to start the new activity using the Intent class and the startActivity() method.
We have specified the context of the current activity using this, and the class of the new activity using NewActivity::class.java.
Here is the final Kotlin code MainActivity.kt
package com.example.startactivity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
class MainActivity : AppCompatActivity() {
private lateinit var openButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
openButton = findViewById(R.id.openButton)
// Open new activity on button click
openButton.setOnClickListener {
val intent = Intent(this, NewActivity::class.java)
startActivity(intent)
}
}
}
Here is the NewActivity.kt file
package com.example.startactivity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
class NewActivity : AppCompatActivity() {
private lateinit var welcomeText: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_new)
welcomeText = findViewById(R.id.welcomeText)
}
}
Manifest Code
Check if your AndroidManifest.xml looks like the following.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.startactivity">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.StartActivity"
tools:targetApi="31">
<activity
android:name=".NewActivity"
android:exported="false"
android:label="NewActivity"
android:parentActivityName=".MainActivity" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Output
To test the application, we need to run it on an Android device or emulator. When we click the button with the ID openButton, the new activity should open. Here is the final output.
![]() |
Start new activity on button click |
In this article, we have explained how to open a new activity on button click using Kotlin. We have first created the new activity, and then defined the button in the XML layout file.
Finally, we have added a click listener to the button in the Kotlin code, and opened the new activity using an intent.
By following these steps, we can easily open a new activity on button click in our Android application.
I hope this article helps you understand how to open new activity on button click in Android using Kotlin.
So, go ahead and try it out today!
Recommended Articles
Migrating to Material 3: A Step-by-Step Guide
Mastering Android Bottom Sheets: A Comprehensive Tutorial in Kotlin
Understanding RecyclerView in Android using Kotlin
Creating a Chatbot App like ChatGPT using Kotlin: A Step-by-Step Guide
Android CardView With Image and Text Using Kotlin
Android Floating Action Button (FAB) Using Kotlin with Example
Creating an Option Menu in Android with Kotlin
Learn Android App Development using Kotlin.
Start Learning