Belajar Menggunakan Intent,
Sebuah Jembatan Interaksi Antar Komponen
Intent adalah sebuah kelas dalam programming
Android yang berfungsi untuk perpindahan halaman.
Intent juga merupakan suatu objek yang terdapat
dalam suatu activity dimana objek tersebut dapat komunikasi dengan activity
yang lain, baik activity pada fungsi internal android misal seperti memanggil
activity dalam satu package atau beda package yang masih berada dalam satu
project.
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
Hasil Output
Implicit Intent
Intent dengan Extra
Source:
Komentar
Posting Komentar