INTENT

Pengertian
Intent adalah mekanisme untuk melakukan sebuah action dan komunikasi antar komponen aplikasi misal activity, services, dan broadcast receiver. Ada tiga penggunaan umum intent dalam aplikasiAndroid 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 broadcastyang dikirimkan oleh sistemAndroid untuk event booting tersebut.
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 aplikasiAndroid 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 broadcastyang dikirimkan oleh sistemAndroid untuk event booting tersebut.
Tentang Intent
Intent memiliki dua bentuk yaitu:
1. 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.
2. 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.
Latihan Intent
Latihan ini menitik beratkan pada implementasi intent untuk melakukan perpindahan dari activity ke activity lain, dengan atau tidak membawa data. Beberapa bagian dari latihan ini akan menjawab beberapa pertanyaan umum dalam pengembangan aplikasiAndroid sebagai berikut: Bagaimana berpindah dari satu activity ke activity lain?
Bagaimana berpindah dari satu activity ke activity lain dengan membawa data? o Single value dari suatu variabel. o Obyek model Plain Old Java Object (POJO).
Menjalankan komponen di aplikasi lain untuk keperluan membuka browser atau melakukan pemanggilan melalui aplikasi telepon bawaan?
Mengirimkan hasil nilai balik melalui Intent
Logika Dasar
Berpindah dari satu Activity ke Activity lain dengan membawa data. Activity asal akan mengirimkan data melalui Intent danActivity tujuan akan menerima data yang dikirimkan.
Langkah - langkah
Explicit dan Implicit Intent
Pertama-tama, buatlah dua buah activity pada Android Studio anda. Lalutambahkan 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>
lanjut pada : 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>
lanjut pada : PageOne.java
Berikut baris progran unrtuk PageOne,java :
lanjut pada : PageOne.java
Berikut baris progran unrtuk 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, Booelan, array, character, dan sebagainya. Namun tidak semua tipe data support untuk dikirim antar Activity, tipe dara yang berukuran besar seperti gambar (image bitmap) atau file,tidak dapat di passing antar Activity melalui metode ini.
Lanjut pada ; MainActivity,java
Berikut baris program untuk MainActivity,java :
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, Booelan, array, character, dan sebagainya. Namun tidak semua tipe data support untuk dikirim antar Activity, tipe dara yang berukuran besar seperti gambar (image bitmap) atau file,tidak dapat di passing antar Activity melalui metode ini.
Lanjut pada ; 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);
}
});
}
}
lanjut pada : Main2Activity.java
Berikut baris prigram untuk Main2Activity.java :
lanjut pada : Main2Activity.java
Berikut baris prigram 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);
}
}
lanjut pada : activity_main.xml
Berikut baris program pada activity_main.xml :
lanjut pada : 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>
lanjut pada activity_main2.xml
Berikut baris program pada activity_main2.xml
lanjut pada 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
Explicit Intent

> Hasil Output
Implicit Intent

> Hasil Output
Intent dengan Extra

Komentar
Posting Komentar