Tutorial Android : Cara Parsing Variabel Dari Activity Ke Activity Lainnya

Akhirnya kota Denpasar mendung juga, mudah-mudahan bisa turun hujan. Dari kemarin cuacanya panas terus, malamnya juga panas bukan main. Mungkin ini kali yaw tanda-tanda dunia mau kiamat. Yaw, daripada mikirin dunia yang mau kiamat gak jelas kapan, mending kita isi dengan kegiatan positif seperti biasanya, yaitu ngOprek hape + ngOding :p. Di postingan kali ini, saya akan membahas cara untuk melakukan Parsing Variabel Dari Activity Ke Activity Lainnya di pemrograman aplikasi android. Di postingan yang kemarin saya sudah membahas cara berpindah ke activity lainnya dengan menggunakan Intent(). Kita anggap sajalah activity ini seperti halaman web yang saling berhubungan, dimana biasanya ada sebuah variabel yang dikirimkan dari activity yang pertama ke activity yang kedua. Variabel yang ingin dikirim, disimpan dalam library Bundle() yang kemudian disisipkan melalui Intent() dari activity pertama, mirip seperti format array. Di activity kedua, tinggal di-ekstrak saja dan dipanggil sesuai dengan index-nya. Gimana..??? Pusing dengan penjelasan saya :D….??? Yaw, daripada pusing dengar penjelasan saya yang masih awam banget dengan dunia android, mending kita langsung aja capcus ke implementasinya.

1. Studi kasusnya saya ambil yang sederhana saja, yaitu formulir pendaftaran. Ketika di klik tombol kirim, maka activity kedua akan nongol+menampilkan data-data yang diinputkan tadi. Kita buat dulu project baru.

2. Kita edit file layout-nya terlebih dahulu, buka file main.xml.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<RelativeLayout android:id="@+id/widget61"
   android:layout_height="50px"
   android:background="#000"
   android:layout_x="0px"
   android:layout_y="0px"
   android:layout_width="match_parent">

<TextView android:id="@+id/widget62"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="Formulir Pendaftaran"
   android:textSize="20sp"
   android:textStyle="bold"
   android:textColor="#fff"
   android:layout_centerVertical="true"
   android:layout_centerHorizontal="true">
</TextView>
</RelativeLayout>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/widget30"
   android:text="Nama Lengkap">
</TextView>

<EditText android:layout_height="wrap_content"
   android:text=""
   android:layout_width="400px"
   android:textSize="18sp"
   android:id="@+id/nama_editText">
</EditText>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/widget31"
   android:text="Alamat">
</TextView>

<EditText android:layout_height="wrap_content"
   android:text=""
   android:layout_width="400px"
   android:textSize="18sp"
   android:id="@+id/alamat_editText">
</EditText>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/widget31"
   android:text="Tempat / Tanggal Lahir">
</TextView>

<EditText android:layout_height="wrap_content"
   android:text=""
   android:layout_width="400px"
   android:textSize="18sp"
   android:id="@+id/tgllahir_editText">
</EditText>

<Button android:text="Kirim Data"
   android:layout_height="wrap_content"
   android:layout_width="200px"
   android:id="@+id/kirim_btn">
</Button>

<Button android:text="Hapus Data"
   android:layout_height="wrap_content"
   android:layout_width="200px"
   android:id="@+id/hapus_btn">
</Button>

</LinearLayout>

3. Buat sebuah layout baru dengan nama tampil.xml, file ini merupakan layout dari activity yang kedua.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/nama_textView"
   android:textSize="15sp"
   android:text="">
</TextView>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/alamat_textView"
   android:textSize="15sp"
   android:text="">
</TextView>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/tgllahir_textView"
   android:textSize="15sp"
   android:text="">
</TextView>

</LinearLayout>

4. Kita lanjutkan ke file activity yang pertama, buka dan edit file ParsingVariabelActivity.java.

public class ParsingVariabelActivity extends Activity {

	String var_nama,var_alamat,var_tgllahir;
	EditText nama, alamat, tgllahir;
	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        nama = (EditText) findViewById(R.id.nama_editText);
        alamat = (EditText) findViewById(R.id.alamat_editText);
        tgllahir = (EditText) findViewById(R.id.tgllahir_editText);

        Button reset = (Button) findViewById(R.id.hapus_btn);
        reset.setOnClickListener(new OnClickListener() {
        	public void onClick(View v) {
        		nama.setText("");
        		alamat.setText("");
        		tgllahir.setText("");
        	}
        });

        Button submit = (Button) findViewById(R.id.kirim_btn);
        submit.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				var_nama = nama.getText().toString();
				var_alamat = alamat.getText().toString();
				var_tgllahir = tgllahir.getText().toString();
				Intent i = null;
				i = new Intent(ParsingVariabelActivity.this, TampilVariabel.class);
				Bundle b = new Bundle();
				b.putString("parse_nama", var_nama);
				b.putString("parse_alamat", var_alamat);
				b.putString("parse_tgllahir", var_tgllahir);
				i.putExtras(b);
				startActivity(i);
        	}
        });
	}
}

Karena variabelnya berupa teks, maka saya gunakan putString(). Jika ingin menggunakan tipe data yang lainnya juga bisa kok. Variabel yang sudah dimasukkan ke dalam array (bahasa kasarnya kayak gitu), dipaketkan menjadi satu dengan Intent().

5. Buat sebuah activity baru (new > Class), dan berikan nama TampilVariabel.java.

public class TampilVariabel extends Activity {

	TextView nama,alamat,tgllahir;
	String get_nama,get_alamat,get_tgllahir;
	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tampil);

		nama = (TextView) findViewById(R.id.nama_textView);
		alamat = (TextView) findViewById(R.id.alamat_textView);
		tgllahir = (TextView) findViewById(R.id.tgllahir_textView);

		Bundle b = getIntent().getExtras();

		get_nama = b.getString("parse_nama");
		get_alamat = b.getString("parse_alamat");
		get_tgllahir = b.getString("parse_tgllahir");

		nama.setText("Nama : "+get_nama);
		alamat.setText("Alamat : "+get_alamat);
		tgllahir.setText("Tempat/Tanggal Lahir : "+get_tgllahir);

	}
}

Setelah sampai di activity yang kedua, variabel-variabel tersebut diekstrak. Bundle b = getIntent().getExtras();. Yang kemudian diambil berdasarkan indexnya, mirip dengan array kan :).

6. Jalankan aplikasi melalui emulator (tekan Ctrl+F11), kira-kira hasilnya seperti skrinsut di bawah ini :

Parsing variabel ini merupakan teknik dasar yang sangat perlu menurut saya. Implementasi lebih lanjutnya bisa digunakan saat membuat sebuah aplikasi yang membutuhkan database, baik itu yang berbentuk local storage (di hape) maupun online storage (yang ini pake server). OK deh, sekian dulu postingan saya di malam minggu yang ternyata gak jadi mendung ini (malahan tetap panas :D). Semoga bisa bermanfaat untuk rekan-rekan yang sedang belajar pemrograman di android.

Sumber Referensi : http://developer.android.com

Happy Blogging and Keep Coding

Cheerrrsss….!!!!

[to_like]Download Aplikasi[/to_like]

14 comments

  1. navoleo Reply

    yang lengkap mas kalau buat code, itu kan harus di add dulu TampilVariabel ke android manifest…
    kalau gak di add gak bakalan jalan tuh program…

    • Gede Lumbung Post authorReply

      makasi atas koreksinya bang
      di lampiran source code yg bisa di download sudah saya sertakan file AndroidManifest.xml nya

  2. danie Reply

    gan…, mau tanya script untuk kirim data pada android gmn ya?
    tampilannya kurang lebih seperti pada contoh screenshoot di atas ?
    maksudnya data yang sudah tersimpan di database lokal (sqlite) kemudian ditampilkan pada list view android, setelah itu data dikirim ke database web server

    mohon pencerahannya
    thanks ^_^

  3. mau nanya Reply

    mas gan bagaimana klo menampilkan data bukan dari edit text tapi dari misalkan kalkulasi penjumblahan edit text 1 dengan edit text 2 yg di tampilkan di tampil.xml

    • Gede Lumbung Post authorReply

      ambil data dari edittext 1 dan 2, pake getText()
      masukkan variabel, jumlahkan di dalam variabel
      terus tampilkan ke edittext hasilnya, pake setText()

      • mau nanya Reply

        bagai mana kalo data yg di ambil dari 2 activity yg berbeda
        misalkan ada 3 actvity, A B C jadi activity B akan membuat fungsi memanggil/ mengambil data dari A dan C
        misalkan data dari A akan di proses di B kemudian di simpan di C, kemudian ada fungsi untuk mengambil data yg di simpan di C untuk di tampilkan keembali kembali ke B
        jadi di B akan ada 2 getIntent().getExtras dari activity A dan C

        bisa tolong pencerahannya gan???

  4. anisa Reply

    Gan..gimana kl buat pencarian dengan kategori dari spinner ntar hasil pencariannya ditampilkan di listview?? pke json php dan mysql…mohon pencerahannya gan …thanks…

  5. wenni Reply

    mau tanya, saya kan punya 2class. yg prtama hitung, kdua total.
    untuk kelas total ini saya mau ambil nilai dari salah satu variabel yang ada dalam variabel hitung.
    bagaimana solusinya, mohon pencerahan mas 🙁

  6. aryo Reply

    bang boleh minta bantuan…
    bang kalau tuorial mengolah parsing tree di android gmna ya..untuk pembuatan kamus elektronik

    terimakasih bang

  7. Hari Reply

    Bang pengen nanya, cara parsing nilai variabel dari username dari database SQL Server gimana ya. terus usernamenya dijadiin parameter nampilin array suatu kolom sesuai dengan usernamenya. Bisa ora bang ? ^_^