Mengirim Parameter atau Data antar Activity Menggunakan Explicit Intent

Class Intent digunakan untuk menjalankan Activity lainnya. Dengan kata lain, untuk berpindah dari Activity yang satu ke activity lainnya.
Terdapat 2 bentuk Intent, Explicit Intent dan Implicit Intent.
Dengan Explicit Intent, kita dapat mengirimkan suatu parameter atau nilai dari suatu variable ke Activity yang akan dituju. 

Untuk contoh penggunaan sederhananya, saya mecoba membuat 2 parameter masukan(nama & jenis kelamin).

Karena akan menggunakan 2 Activity, maka akan ada penambahan file java dan penambahan file xml.

Buat 2 file XML (activity_main.xml & activity_secondary.xml)


Script activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/txt_nama"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Nama Anda"
        android:layout_marginTop="10dp" />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Jenis kelamin"
        android:layout_marginTop="10dp" />
    <RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
 
        <RadioButton
            android:id="@+id/rb_laki"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Laki-laki" />
        <RadioButton
            android:id="@+id/rb_perempuan"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Perempuan" />
        </RadioGroup>
     
<Button
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:text="Kirim Data"
   android:id="@+id/btn_kirim"
   android:layout_marginTop="20dp"/>
</LinearLayout>

Script activity_secondary.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
<TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/lbl_nama"
   android:textSize="15dp"
   android:layout_marginTop="10dp"/>
<TextView
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:id="@+id/lbl_jk"
   android:textSize="15dp"
   android:layout_marginTop="10dp"/>
</LinearLayout>

Berikutnya untuk script java, sediakan 2 file java, MainActivity.java & SecondaryActivity.java

Script MainActivity.java
package com.gungeka.contohintent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.app.Activity;
import android.content.Intent;
public class MainActivity extends Activity {
private EditText txt_nama;
private RadioButton rb_laki, rb_perempuan;
private Button btn_kirim;
private String bantu_jk = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt_nama = (EditText) findViewById(R.id.txt_nama);
rb_laki = (RadioButton) findViewById(R.id.rb_laki);
rb_perempuan = (RadioButton) findViewById(R.id.rb_perempuan);
btn_kirim = (Button) findViewById(R.id.btn_kirim);
btn_kirim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
kirimParams();
}
});
}
private void kirimParams(){
if (rb_laki.isChecked()) {
bantu_jk = "Laki";
}
if (rb_perempuan.isChecked()) {
bantu_jk = "Perempuan";
}
Intent i = new Intent(MainActivity.this, SecondaryActivity.class);
i.putExtra("kirim_nama", txt_nama.getText().toString());
i.putExtra("kirim_jk", bantu_jk);
startActivity(i);
}
}

Script SecondaryActivity.java
package com.gungeka.contohintent;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class SecondaryActivity extends Activity {
private TextView lbl_nama, lbl_jk;
private String nama, jk;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_secondary);
lbl_nama = (TextView) findViewById(R.id.lbl_nama);
lbl_jk = (TextView) findViewById(R.id.lbl_jk);
getParams();
}
private void getParams(){
Bundle extras = getIntent().getExtras();
if (extras != null) {
nama = extras.getString("kirim_nama");
jk = extras.getString("kirim_jk");
}
lbl_nama.setText("Nama : " + nama);
lbl_jk.setText("Jenis Kelamin : " + jk);
}
}

Download project

Jalankan Aplikasi,

Main Activity
Secondary Activity

6 komentar

gan kirim param itu apa ya?
kalau gak pakai bisa gak?

Terima kasih atas kunjungannya...

kirimParams itu nama method.
Dimana isinya, buat intent & deklarasi nilai variabel untuk dikirim ke SecondActivity.

terima kasih banyak tutorial nya om..
sangat membantu..

maksih Om.. alhamdulillah sangat membantu om.. :) (y)
terus berkarya om

Mas, kalau saya ingin menampilkan nilai dari 3 activity ke satu activity gmana ya? saya sudah mencoba menggunakan intent, tetapi nilai yang tampil hanya dari activity terakhir. 2 activity klainnya data nya (nol).mohon bantuannya, terima kasih

Selamat siang.
Terima kasih atas kunjungannya.
Maaf baru balas.

Untuk case tersebut, saya coba bantu dalam logikanya saja.
Misalnya:
- Activity 1 memiliki parameter: a, b
- Activity 2 memiliki parameter: c, d
- Activity 3 menampilkan semua parameter.

- Buat intent yang mana mengirim data:
'a'
'b'
dari Activity 1 ke Activity 2.
- Pada Activity 2, simpan 2 parameter tersebut kedalam variabel.
- Dari Activity 2, kirim data:
'c',
'd',
'var a' (nilai dari 'a'yang dikirim dari Activity 1),
'var b' (nilai dari 'a'yang dikirim dari Activity 1)
ke Activity 3

Cara lainnya, anda menyimpan semua parameter tersebut ke dalam database SQLite sebagai data temporary.

Salam.


EmoticonEmoticon