KOMPONEN ANDROID (INTENT)
Tentang 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:
- Memindahkan satu activity ke activity lain dengan atau tidak membawa data.
- Menjalankan background service, misalnya melakukan sinkronisasi ke server dan menjalankan proses berulang (periodic/scheduler task).
- 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 memiliki dua bentuk yaitu:
Explicit Intent
Adalah tipe Intent yang digunakan
untuk menjalankan komponen dari dalam sebuah aplikasi. Explicit intent bekerja
dengan menggunakan nama kelas yang dituju misal :
ac.id.nusamandiri.activity.DetailActivity. Umumnya intent ini digunakan untuk
mengaktifkan komponen pada satu aplikasi.
Implicit Intent
Adalah tipe intent yang tidak
memerlukan detail nama kelas yang ingin diaktifkan. Model ini memungkinkan
komponen dari aplikasi lain bisa merespon request
intent yang dijalankan. Penggunaan tipe intent ini umumnya diperuntukan untuk
menjalankan fitur/fungsi dari komponen aplikasi lain. Contohnya ketika kita
membutuhkan fitur untuk mengambil foto. Daripada membuat sendiri fungsi kamera,
lebih baik kita menyerahkan proses tersebut pada aplikasi kamera bawaan dari
peranti atau aplikasi kamera lain yang telah terinstal sebelumnya di peranti.
Hal yang sama misalnya ketika kita membutuhkan fungsi berbagi konten. Kita bisa memanfaatkan intent untuk menampilkan aplikasi mana saja yang bisa menangani fitur tersebut. Implementasi implicit intent ini akan sangat memudahkan bagi pengembang agar tetap fokus pada proses bisnis inti dari aplikasi yang dikembangkan.
Langkah – langkah membuat 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.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.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.
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
Implicit Intent
Intent dengan Extra
SUMBER :




Komentar
Posting Komentar