Android intent

How to use intent in Android with Example

Intent in Android :

The purpose of intent is to take action. Mainly used to start an action, send a broadcast receiver, start a service, and send a message between two actions. There are two kinds of intents in Android: implicit intent and explicit intent.

The intent is a message object that can be used to request an operation from another application component. Although the intention is to facilitate communication between components in many ways, there are three main use cases: Start operations. The action is a single screen in the application.

There are two types of intent:

  • Implicit intent
  • Explicit intent

Syntax of Intent:

 val intent = Intent(this,Demo::class.java)
 startActivity(intent)

What are Intent Flags in Android?

Flag defined in the Intent class and used as a flag for Intent metadata. Flags can tell the Android system how to start an Activity and how to deal with it once it is started. Before passing the Intent to startActivity (Intent), you can change this behavior by specifying the Intent flag on the Intent instance.

example:

val intent = Intent(context, DemoActivity::class.java)
intent.flags = (Intent.FLAG_ACTIVITY_NEW_TASK)

Difference between Explicit and Implicit intent :

Explicit intentImplicit intent
It is used to open explicit certain ActivityIt is used external messaging between apps
It is used in internal messaging between your appIt is used to open some Activities with certain service
It is in the designated target class

Files:

  • MainActivity.kt
  • activity_main.xml
  • AnotherActivity.kt
  • another_activity.xml

Preview

File: MainActivity.kt

package com.sagar.intentinandroid

import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.View
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity


class MainActivity : AppCompatActivity() {
    var explicit_btn: Button? = null
    var implicit_btn: Button? = null
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        explicit_btn = findViewById<View>(R.id.Explicit_btn) as Button
        implicit_btn = findViewById<View>(R.id.implicit_btn) as Button

     
        explicit_btn!!.setOnClickListener {
            val intent = Intent(this, AnotherActivity::class.java)
            startActivity(intent)
        }

   
        implicit_btn!!.setOnClickListener {
            val intent = Intent(Intent.ACTION_VIEW)
            intent.data = Uri.parse("https://developersdome.com")
            startActivity(intent)
        }
    }
}

File: 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:paddingLeft="30dp"
    android:paddingTop="30dp"
    android:paddingRight="30dp"
    android:paddingBottom="30dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="87dp"
        android:layout_marginEnd="4dp"
        android:layout_marginRight="4dp"
        android:background="@color/white"
        android:fontFamily="sans-serif-black"
        android:gravity="center_horizontal"
        android:text="If you use implicit intent button then you will be redirect to the DevelopersDome"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="240dp"
        android:layout_marginEnd="4dp"
        android:layout_marginRight="4dp"
        android:background="@color/white"
        android:fontFamily="sans-serif-black"
        android:gravity="center_horizontal"
        android:text="If you use Explicit intent button then you will be navigate to the Another Activity"
        android:textAlignment="center"
        android:textColor="@color/black"
        android:textSize="24sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/Explicit_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="572dp"
        android:backgroundTint="@color/teal_200"
        android:text="Explicit Intent "
        android:textColor="@color/black"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/implicit_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="189dp"
        android:backgroundTint="@color/teal_200"
        android:textColor="@color/black"
        android:text="Implicit Intent "
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

File: AnotherActivity.kt

package com.sagar.intentinandroid

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast

class AnotherActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_another)
        Toast.makeText(this, "Another Activity\nDevelopers Dome",Toast.LENGTH_LONG).show();

    }
}

File: another_activity.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="#4A148C"
    android:paddingLeft="30dp"
    android:paddingTop="30dp"
    android:paddingRight="30dp"
    android:paddingBottom="30dp"
    tools:context=".AnotherActivity">

    <TextView
        android:id="@+id/textView_AA"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="159dp"
        android:text="This is Another Activity\nDevelopers Dome"
        android:textAlignment="center"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="30sp"
        android:textStyle="bold"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:gravity="center_horizontal" />
</androidx.constraintlayout.widget.ConstraintLayout>

Leave a Reply