fbpx

Tutorial Android Intent

Android Intent adalah struktur data atau objek yang terdapat deskripsi dari tugas yang akan dijalankan.

Salah satu keunggulan dari fitur Intent adalah kalian dapat mengirim asynchronously activities dan services.

Intent selalu diatur oleh komponen Android, aktivitas, servis atau penerimaan broadcast. Di tutorial ini kita akan fokus terlebih dahulu di Intent handlers.

Tipe dari Android Intent

  • Explicit Intent, yaitu suatu Intent yang yang berisi objek yang dideklarasikan secara jelas berupa nama kelas atau jomponen yang memenuhi syarat. Explicit Intent biasanya digunakan untuk memulai komponen atau activity dalam aplikasi Anda sendiri, karena nama kelas aktivitas atau layanan yang ingin Anda mulai sudah diketahui. Saat Anda membuat Explicit Intent untuk memulai aktivitas atau layanan, sistem segera memulai komponen aplikasi yang ditentukan dalam objek Intent.
  • Implicit intent, yaitu suatu Intent yang mendeklarasikan tindakan umum untuk dilakukan yang memungkinkan untuk bekerja dengan komponen dari aplikasi lain. Saat Anda membuat Implicit intent, sistem Android menemukan komponen yang sesuai untuk memulai dengan membandingkan konten yang dimaksud dengan yang dideklarasikan dalam file manifest aplikasi lain pada perangkat. Jika cocok dengan filter yang dimaksud, sistem akan memulai komponen tersebut dan mengirimkannya ke objek Intent.

Cara menggunakan Android Intent

Contoh Penggunaan untuk pindah halaman dengan tombol :

  1. Kita buat xml untuk Halaman dan Halaman Kedua.

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"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="First Screen"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.37" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="56dp"
        android:text="Button"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        app:layout_constraintVertical_bias="0.005" />

</androidx.constraintlayout.widget.ConstraintLayout>

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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Second Screen"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.37" />


</androidx.constraintlayout.widget.ConstraintLayout>

2. Lalu kita buat dua kelas yaitu MainActivity.java dan SecondActivity.java

MainActivity.java

package com.example.intentapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button button;

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

        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent= new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }});
    }
}

SecondActivity.java

package com.example.intentapplication;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

public class SecondActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
}

Lalu nanti hasil akan seperti ini :

Ketika tombol diklik maka akan memindahkan ke layar kedua (“Second Screen”)

Pembahasan :

Pembahasan kali ini sebenarnya cukup simpel, semua kode dapat bekerja karena adanya kode

Kode di ataslah yang sebenarnya melakukan intent.  Sebelumnya jangan lupa menambah intent di AndroidManifest.xml untuk SecondActivity seperti ini ya:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.intentapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.IntentApplication">
        <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>
        <activity
            android:name=".SecondActivity"
            android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        </activity>
    </application>

</manifest>

Jika tidak ditambahkan intent untuk SecondActivity maka aplikasi akan mengalami error.

About the Author