Sabtu, 18 Juli 2020

Komponen Android Intent

Komponen Android 
Intent 

Intent adalah mekanisme untuk melakukan sebuah action dan komunikasi antar
komponen aplikasi misal activity, services, dan broadcast receiver Ada tiga penggunaan
umum intent dalam aplikasi Android yaitu

1. Memindahkan satu activity ke activity lain dengan atau tidak membawa data

2. Menjalankan background service, misalnya melakukan sinkronisasi ke server dan
    menjalankan proses berulang periodic scheduler task

3. Mengirimkan obyek broadcast ke aplikasi yang membutuhkan Misal, ketika aplikasi
    membutuhkan proses menjalankan sebuah background service setiap kali aplikasi
    selesai melakukan booting Aplikasi harus bisa menerima obyek broadcast yang
    dikirimkan oleh sistem Android untuk event booting tersebut
Intent merupakan objek tipe android.content.Intent. Melalui metode startActivity() yang digunakan untuk memulai sebuah activity lain.
Intent dibagi menjadi 2, yaitu :
  1. Explicit Intent berfungsi untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama. Misalnya seperti : Berpindah Activity.
  2. Implicit Intent berfungsi untuk memanggil fungsi activity yang sudah ada di fungsi internal android seperti Dial Number, Open Browser dan lainnya.
Tutorial kali ini, saya akan mempraktekan implementasi dari Intent menggunakan Android Studio.

Langkah - langkah

  • Explicit dan Implicit Intent

Pertama-tama, buatlah dua buah activity pada Android Studio Anda. Lalu tambahkan baris program pada :

activity_main.xml

Berikut baris program pada activity_main.xm :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.example.acer.myapplication.PageOne">

    <Button
        android:id="@+id/explicitintent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Klik disini untuk Explicit Intent"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="150dp"/>

    <Button
        android:id="@+id/implicitintent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Klik disini untuk Implicit Intent"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="200dp"/>

</RelativeLayout>

activity_page_two.xml

Berikut baris program pada activity_page_two.xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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="com.example.acer.myapplication.PageTwo">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini adalah halaman kedua"
        android:textSize="30dp"
        android:layout_marginTop="150dp"
        android:layout_alignParentStart="true"
        android:layout_marginStart="30dp" />

</RelativeLayout>

PageOne.java

Berikut baris program untuk PageOne.java :

import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class PageOne extends AppCompatActivity implements View.OnClickListener {
    Button explicitintent;
    Button implicitintent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        explicitintent = (Button)findViewById(R.id.explicitintent);
        explicitintent.setOnClickListener(this);
        implicitintent = (Button)findViewById(R.id.implicitintent);
        implicitintent.setOnClickListener(this);

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.explicitintent:
                Intent explicit = new Intent(PageOne.this, PageTwo.class);
                startActivity(explicit);
                break;
            case R.id.implicitintent:
               Intent implicit = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.codepolitan.com"));
                startActivity(implicit);
                break;
            default:
                break;
        }
    }
}
  • Intent dengan Extra

Intent dengan extra atau putExtra() adalah sebuah metode dari Intent yang digunakan untuk mengirimkan data ke activity yang dituju. Data yang akan dikirim pun tipenya dapat bermacam-macam, bisa berbentuk String, angka (integer, float, double), ArrayList, boolean, array, character, dan sebagainya. Namun tidak semua tipe data support untuk dikirim antar Activity, tipe data yang berukuran besar seperti gambar (image bitmap) atau file, tidak dapat dipassing antar Activity melalui metode ini.

MainActivity.java

Berikut baris program untuk MainActivity.java :
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText name = (EditText) findViewById(R.id.edit_textdata);
        Button button = (Button) findViewById(R.id.button_submitintent);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this,Main2Activity.class);
                i.putExtra("name", name.getText().toString());
                startActivity(i);
            }
        });
    }
}

Main2Activity.java

Berikut baris program untuk Main2Activity.java :
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        TextView t = (TextView) findViewById(R.id.text_viewdata);
        Bundle bundle=getIntent().getExtras();
        String s=bundle.getString("name");
        t.setText(s);

    }
}

activity_main.xml

Berikut baris program pada activity_main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_horizontal"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini halaman utama Activity 1"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:layout_marginTop="20dp"
        android:id="@+id/edit_textdata"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Data"/>

    <Button
        android:id="@+id/button_submitintent"
        android:text="Intent with extra"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

activity_main2.xml

Berikut baris program pada activity_main2.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ini halaman kedua Activity 2"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:layout_margin="15dp"
        android:id="@+id/text_viewdata"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Data"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

Hasil Output

Explicit Intent
explixit

Hasil Output

Implicit Intent

Hasil Output

Intent dengan Extra
Sumber : 

Tidak ada komentar:

Posting Komentar

Komponen Android Service

Komponen Android Service Pengertian Service Sebelumnya telah belajar mengenai activity dan implementasinya. Activity adalah kom...