0
0
0
share
#Android#Intent
0 Komentar
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 :
- 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
Referensi http://www.vogella.com/tutorials/AndroidIntent/article.html
0
0
0
share