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 |
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 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 |
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 |
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 |
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 Data Diterima |

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 :)