MASIGNCLEAN102

Cara Mengirim Data dari Activity Satu ke Activity Lain Menggunakan Intent

Cara Mengirim Data dari Activity Satu ke Activity Lain Menggunakan Intent - Setelah pada artikel sebelumnya kita belajar apa itu Intent pada android dan jenis-jenis intent pada android, pada kesempatan kali ini kita akan belajar bagaimana Cara Mengirim Data dari Activity Satu ke Activity Lain Menggunakan Intent.

Intent merupakan sebuah class pada android yang digunakan untuk berpindah activity, baik activity pada project yang sama maupun activity pada fungsi internal android.

Lebih lengkapnya kalian bisa baca artikel sebelumnya di

Mengenal Intent untuk Berpindah Halaman atau Activity pada Android

Baca Juga Dokumentasi Resmi Intent dari Android


Setelah kalian membaca dan paham apa itu intent, saatnya kita lanjut untuk membahas lebih dalam mengirim data ke activity lain menggunakan intent.

Mengirim / Passing data antar activity Menggunakan Intent

Untuk mengirim data menggunakan Intent,

kita dapat memanfaatkan perintah putExtra yang didapat dari membuat objek baru Intent.

Syntax :

Intent intent = new Intent(ActivitySatu.this , ActivityDua.class); // Membuat objek baru intent.
intent.putExtra("keypair", nilai); // Mengirim nilai / data lewat keypair.

Contoh Aplikasi

Langsung saja kita praktekkan dengan membuat sebuah aplikasi di Android Studio.

Langkah Pertama, silahkan Buat Project Baru. Pilih Empty Activity.

Langkah Kedua, silahkan Buat Activity Baru dengan cara Pilih File -> New -> Activity -> Empty Activity. Kemudian beri nama SecondActivity.

Sekarang, kita punya dua Activity yaitu MainActivity dan SecondActivity.

activity_main.xml

Pertama kita akan mulai dari membuat layout untuk activity_main, Kalau kalian masih bingung tentang layouting, baca artikel sebelumnya terlebih dahulu sebelum lanjut

Mengenal Linear Layout dan Relative Layout pada Android

Salin kode berikut dan tempelkan pada layout activity main :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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=".MainActivity"
    android:orientation="vertical"
    android:background=" #e5e7e9 ">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="20dp"
        android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Passing Data KompiKaleng"
            android:textAlignment="center"
            android:textStyle="bold"
            android:textColor="#000"
            android:textSize="20sp"/>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_gravity="center"
            android:gravity="center">
 
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:gravity="center">
                <TextView
                    android:layout_width="60dp"
                    android:layout_height="match_parent"
                    android:text="Nama : "
                    android:textStyle="bold"
                    android:textColor="#000"
                    android:textSize="16sp"
                    android:textAlignment="center"/>
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/et_nama"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:gravity="center">
                <TextView
                    android:layout_width="60dp"
                    android:layout_height="match_parent"
                    android:text="Hobi : "
                    android:textStyle="bold"
                    android:textColor="#000"
                    android:textSize="16sp"
                    android:textAlignment="center"/>
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/et_hobi"/>
            </LinearLayout>
            <Button
                android:id="@+id/btn_kirimData"
                android:layout_marginTop="20dp"
                android:layout_width="150dp"
                android:layout_height="50dp"
                android:text="Kirim Data"
                android:background="#a9cce3 "/>
        </LinearLayout>
    </LinearLayout>
 
 
</LinearLayout>

MainActivity.java

Setelah mengatur layout selanjutnya kita masuk ke javanya,

Salin kode berikut dan tempelkan pada MainActivity.java

package com.example.pkl.belajarintent;
 
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.EditText;
import android.widget.Toast;
 
public class MainActivity extends AppCompatActivity {
 
    Button btn_kirimData;
    EditText et_nama,et_hobi;
    String nama,hobi; // Variabel untuk menampung hasil nama, dan hobi.
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        btn_kirimData = (Button) findViewById(R.id.btn_kirimData);
        et_nama       = (EditText) findViewById(R.id.et_nama);
        et_hobi       = (EditText) findViewById(R.id.et_hobi);
 
        btn_kirimData.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                nama = et_nama.getText().toString();
                hobi = et_hobi.getText().toString();
 
                Intent i = new Intent(MainActivity.this,SecondActivity.class);
 
                if(nama.equals("") || hobi.equals("")){
                    Toast.makeText(MainActivity.this, "Nama atau Hobi tidak boleh kosong !", Toast.LENGTH_LONG).show();
                }else{
                    i.putExtra("nama",nama);
                    i.putExtra("hobi",hobi);
                    startActivity(i);
                }
 
 
            }
        });
    }
}

Sedikit kita bahas,
nama = et_nama.getText().toString();
perintah di atas berguna untuk menangkap dan menyimpan hasil dari EditText pada variabel Nama. Begitu pula dengan hobi.

Intent i = new Intent(MainActivity.this,SecondActivity.class);
perintah di atas merupakan pembuatan objek baru dari class Intent dengan nama objek i.

if(nama.equals("") || hobi.equals("")){ // Mengecek apabila nama atau hobi kosong.
                    Toast.makeText(MainActivity.this, "Nama atau Hobi tidak boleh kosong !", Toast.LENGTH_LONG).show();
                }else{
                    i.putExtra("nama",nama); // Menyimpan nama pada keypair nama
                    i.putExtra("hobi",hobi); // Menyimpan hobi pada keypair hobi
                    startActivity(i); // Menjalankan Intent
                }
potongan kode di atas berguna untuk mengecek kondisi apabila variabel nama atau hobi kosong akan memunculkan Toast atau pop-up text.

Apabila tidak kosong, akan menyimpan variabel nama dan hobi pada objek Intent untuk dikirim ke activity kedua.

activity_second.xml

Kita lanjut untuk mengisi layout dari activity second untuk menangkap data yang dikirim dari activity satu.

Salin kode berikut dan tempelkan pada activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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=".SecondActivity"
    android:background=" #d5dbdb "
    android:orientation="vertical"
    >
    <TextView
        android:layout_marginTop="20dp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Tangkap Data KompiKaleng"
        android:textAppearance="?android:textAppearanceMedium"
        android:textStyle="bold"
        android:textColor="#000"
        android:gravity="center"/>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_margin="20dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:text="Nama"
                android:textAppearance="?android:textAppearanceMedium"
                android:textStyle="bold"
                android:textColor="#000"/>
 
            <TextView
                android:layout_width="10dp"
                android:layout_height="match_parent"
                android:text=":"
                android:textAppearance="?android:textAppearanceMedium"
                android:textStyle="bold"
                android:textColor="#000"/>
 
            <TextView
                android:id="@+id/tv_nama"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textAlignment="center"
                android:text="Hasil Nama"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="#000"/>
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="60dp"
                android:layout_height="match_parent"
                android:text="Hobi"
                android:textAppearance="?android:textAppearanceMedium"
                android:textStyle="bold"
                android:textColor="#000"/>
            <TextView
                android:layout_width="10dp"
                android:layout_height="match_parent"
                android:text=":"
                android:textAppearance="?android:textAppearanceMedium"
                android:textStyle="bold"
                android:textColor="#000"/>
 
            <TextView
                android:id="@+id/tv_hobi"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:textAlignment="center"
                android:text="Hasil Hobi"
                android:textAppearance="?android:textAppearanceMedium"
                android:textColor="#000"/>
        </LinearLayout>
        <Button
            android:layout_marginTop="20dp"
            android:id="@+id/btn_back"
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:text="Kembali"
            android:background="#a9cce3"/>
    </LinearLayout>
 
 
 
</LinearLayout>

SecondActivity.java

Lanjut ke java dari secondActivity,

Salin dan tempelkan kode berikut pada SecondActivity.java

package com.example.pkl.belajarintent;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
 
import org.w3c.dom.Text;
 
public class SecondActivity extends AppCompatActivity {
    TextView tv_nama,tv_hobi;
    String nama,hobi;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
 
        tv_nama = (TextView) findViewById(R.id.tv_nama);
        tv_hobi = (TextView) findViewById(R.id.tv_hobi);
 
        if(getIntent().getStringExtra("nama") != null){
            nama = getIntent().getStringExtra("nama");
            tv_nama.setText(nama);
        }
        if(getIntent().getStringExtra("hobi") != null){
            hobi = getIntent().getStringExtra("hobi");
            tv_hobi.setText(hobi);
        }
 
    }
}
if(getIntent().getStringExtra("nama") != null){
script di atas berguna untuk mengecek apabila keypair nama yang didapat dari Intent tidak sama dengan null.

Maka,

nama = getIntent().getStringExtra("nama");
tv_nama.setText(nama);
Menyimpan, keypair nama yang didapat dari intent pada Variabel nama.

Kemudian,

tv_nama.setText(nama);
Set Text pada TextView nama, untuk menampilkan di layout activity second.

Hasil Aplikasi

Mengisi Nama dan Hobi pada Activity Pertama untuk dikirim ke Activity ke dua.
Mengisi Nama dan Hobi pada Activity Pertama untuk dikirim ke Activity ke dua.


Menangkap Data dari Activity kedua kemudian dimunculkan di TextView.
Menangkap Data dari Activity kedua kemudian dimunculkan di TextView.


Verifikasi data
Verifikasi data

Nah, bagaimana? apa kalian sudah paham lebih dalam penggunaan intent untuk mengirim data antar activity?.

Kalau kalian merasa artikel ini bermanfaat, jangan lupa tinggalkan komentar ya.

Terima Kasih.
Share This :
Funtechsy