Cara Mengirim Data Dengan Intent

Cara mengirim data dengan intent - Sesuai dengan apa yang saya katakan sebelumnya, setelah kita belajar bagaimana cara Membuat Intent Di Android  saya akan membahas bagaimana cara mengirim data dengan intent tersebut. Sebenarnya tutorial berikut ini tidak terlalu berbeda dengan tutorial sebelumnya, namun disini kita akan memodifikasi sedikit syntax yang sebelumnya, sehingga intent tersebut mampu untuk mengirim data ke Activity yang kita inginkan. Dalam mengirimkan data, kita akan memanfaatkan sebuah metode putExtra yang terdapat pada intent itu sendiri. Kemudian dalam menerima data yang dikirimkan dari intent semula, kita akan menggunakan getIntent().getExtras().

Sekarang kita akan skenariokan bahwa kita akan membuat sebuah aplikasi yang sangat sederhana, dimana nanti di dalam aplikasi ini kita akan mengirim data berupa nama, dan nama ini nanti akan di terima oleh Activity yang dituju.

Sekarang coba buat sebuah project baru seperti gambar berikut ini
Membuat Project Baru
Membuat Project Baru
Karena kita akan membuat aplikasi sederhana dimana nanti akan ada komunikasi antar intent yang saling kirim dan terima data, maka sekarang kita buat Class Activity kedua sebagai penerima data, beserta XML-nya sebagai interface dari Activity kedua tersebut.

Buat Class Activity kedua dengan cara klik kanan pada nama package yang ada di src -> New -> Class -> Buat seperti gambar ini
Membuat Activity Penerima Data
Membuat Class Activity Penerima Data

Sekarang kita buatkan file XML sebagai interface dari Class Activity kedua dengan cara klik res -> Klik Kanan pada layout -> New -> Android XML File -> Buat sepeti gambar ini
Membuat XML dari Class Activity kedua
Membuat XML dari Class Activity kedua

Selanjutnya kita buat interface untuk MainActivity dengan mengedit file activity_main.xml yang terletak di res -> layout -> activity_main.xml

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/tVMainActivity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="25dp"
        android:text="Halaman Input Data"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/eTData"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/tVMainActivity"
        android:layout_below="@+id/tVMainActivity"
        android:layout_marginTop="24dp"
        android:hint="Masukkan Nama Anda"
        android:ems="10" />

    <Button
        android:id="@+id/btKirim"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/eTData"
        android:layout_below="@+id/eTData"
        android:layout_marginTop="18dp"
        android:text="Kirim" />

</RelativeLayout>
Pada script activi_main.xml di atas menggunakan RelativeLayout yang di dalamnya terdapar 1 buah TextView, 1 buah EditText dan Button, sehingga tampilannya seperti ini
Tampilan Interface MainActivity
Tampilan Interface MainActivity

Sekarang kita edit MainActivity.java yang terletak di src -> Nama_Package -> MainActivity.java

MainActivity.java
package id.bangkan.kirimdataintent;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
//Importkan Widget Buton dan OnclickListener
import android.widget.Button;
import android.widget.EditText;
import android.view.View.OnClickListener;

public class MainActivity extends Activity {
 
 EditText nama;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  nama = (EditText)findViewById(R.id.eTData);
  Button kirim = (Button)findViewById(R.id.btKirim);
  kirim.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent kirimdata = new Intent(MainActivity.this, TerimaData.class);
    //Script untuk Mengirim Data
    kirimdata.putExtra("_nama_", nama.getText().toString());
    startActivity(kirimdata);
    finish();
   }
  });
 }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}


Selanjutnya fokus ke Activity yang kedua. Pertama kita persiapkan dulu interface dari activity kedua dengan mengedit terima_data.xml yang sudah kita buat tadi

terima_data.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/tVTerimaData"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="21dp"
        android:text="Halaman Terima Data"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/tVData"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/tVTerimaData"
        android:layout_marginTop="49dp"
        android:text="welcome"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>
Pada script terima_data.xml di atas menggunakan RelativeLayout yang di dalamnya terdapar 2 buah TextView sehingga tampilannya seperti ini
Tampilan Interface Terima Data
Tampilan Interface Terima Data

Sekarang kita edit TerimaData.java
package id.bangkan.kirimdataintent;

import android.os.Bundle;
import android.widget.TextView;
import android.app.Activity;

public class TerimaData extends Activity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.terima_data);
  
  TextView namaTerima = (TextView)findViewById(R.id.tVData);
  
  //Script untuk menerima Data
  Bundle dataTerima = getIntent().getExtras();
  String nama = dataTerima.getString("_nama_");
  namaTerima.setText("Selamat Datang "+nama);
 }
}


karena kita tadi sudah membuat Class Activity baru yaitu Class TerimaData.java, maka kita harus mendaftarkan Class Activity tersebut ke AndroidManifest.xml, silahkan edit AndroidManifest, kemudian tambahkan script berikut tepat di atas kode </application>
<activity
             android:name="id.bangkan.kirimdataintent.TerimaData">
        </activity>

Sehingga tampak seperti berikut ini
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="id.bangkan.kirimdataintent"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="10" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="id.bangkan.kirimdataintent.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
             android:name="id.bangkan.kirimdataintent.TerimaData">
        </activity>
    </application>

</manifest>

Berikut tampilan ketika aplikasi dijalankan

Tampilan Saat Menginput Nama
Tampilan Saat Menginput Nama
Tampilan Saat Data Diterima
Tampilan Saat Data Diterima


Blog, Updated at: 11:53 AM

0 komentar:

Post a Comment

Berkomentarlah dengan bijak dan sopan. Tidak diperbolehkan menggunakan kata-kata yang mengandung SARA. Komentar akan melalui moderation terlebih dahulu, jika terdapat kata-kata yang tidak sesuai ketentuan, maka komenar tidak dapat ditampilkan. Mari Saling berkomentar dengan baik :)