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"?><LinearLayoutxmlns: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 "><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="20dp"android:orientation="vertical"><TextViewandroid: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"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:layout_gravity="center"android:gravity="center"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"><TextViewandroid:layout_width="60dp"android:layout_height="match_parent"android:text="Nama : "android:textStyle="bold"android:textColor="#000"android:textSize="16sp"android:textAlignment="center"/><EditTextandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/et_nama"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:gravity="center"><TextViewandroid:layout_width="60dp"android:layout_height="match_parent"android:text="Hobi : "android:textStyle="bold"android:textColor="#000"android:textSize="16sp"android:textAlignment="center"/><EditTextandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/et_hobi"/></LinearLayout><Buttonandroid: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.@Overrideprotected 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() {@Overridepublic 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 namai.putExtra("hobi",hobi); // Menyimpan hobi pada keypair hobistartActivity(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"?><LinearLayoutxmlns: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"><TextViewandroid: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"/><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"android:layout_margin="20dp"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="60dp"android:layout_height="match_parent"android:text="Nama"android:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#000"/><TextViewandroid:layout_width="10dp"android:layout_height="match_parent"android:text=":"android:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#000"/><TextViewandroid: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><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_width="60dp"android:layout_height="match_parent"android:text="Hobi"android:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#000"/><TextViewandroid:layout_width="10dp"android:layout_height="match_parent"android:text=":"android:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#000"/><TextViewandroid: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><Buttonandroid: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;@Overrideprotected 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.
Menangkap Data dari Activity kedua kemudian dimunculkan di TextView.
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 :
comment 0 komentar
more_vert