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
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 :
- Explicit Intent berfungsi untuk mengaktifkan komponen-komponen dalam satu aplikasi yang sama. Misalnya seperti : Berpindah Activity.
- 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
Hasil Output
Implicit Intent
Hasil Output
Intent dengan Extra
Sumber :
Tidak ada komentar:
Posting Komentar