KOMPONEN ANDROID (INTENT)
Tentang Intent
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
Hasil Output
Intent dengan Extra
sumber :https://www.codepolitan.com/belajar-menggunakan-intent-sebuah-jembatan-interaksi-antar-komponen-599a5576271ef
Komentar
Posting Komentar