-->

Melakukan pertukaran data antar activity

Awalnya ane bingung konsep pertukaran data antar activity di Android. Setelah googling beberapa saat ane menemukan beberapa metode untuk pertukaran data antar Intent.. Nah setelah dicari cari ternyata ada Class Bundle  yang berfungsi sebagai media pesan antar activity nantinya. Nah bundle ini nantinya akan dibawa oleh Intent yang membawanya. Setelah kita berhasil mengirimkan data lewat Intent ini kita tinggal ambil Bundle lewat Intent pembawanya. Okeh langsung saja yah kita main ke codenya..

package com.myapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class KirimData extends Activity{
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  Bundle bundle=new Bundle();
  bundle.putInt("X_VALUE", 10);
  bundle.putString("TITLE", "Belajar bundle");
  Intent i=new Intent(this, TestActivity.class);
  i.putExtras(bundle);
  startActivity(i);
 }
}

Sedangkan untuk menerima datanya di Activity TerimaData

package com.myapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class TerimaData extends Activity{
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main2);
  Intent i=getIntent();
  Bundle b=i.getExtras();
  String title=(String) b.get("TITLE");
  String xValue=b.getString("X_VALUE");
 }
}
Cukup mudah kan untuk melakukan pertukaran data antar activity. Nah tetapi ini masih ada kelemahannya yaitu tidak bisa mengirimkan object yang kompleks hanya data - data primitive saja seperti boolean, String, int, double dan data primitive lainnya. Nah untuk mengatasi masalah ini ada beberapa cara. Diantaranya memakai Parcelable tetapi lumayan ribet memakai cara ini, ane tidak akan membahas mengenai Parcelable tetapi ane ingin membahas metode yang lainnya. Salah satunya adalah mengirimkannnya ke Class Application yang ada di android.
Nah untuk memudahkan lihat contoh kode di bawah ini :


package com.myapp;

import java.util.List;

import android.app.Application;

public class MainApp extends Application {
 private List<String> data;

 public List<String> getData() {
  return data;
 }

 public void setData(List<String> data) {
  this.data = data;
 }
 
 
} 
Nah untuk mengeset nilainya tinggal panggil

MainApp ap=(MainApp) getApplication();
  ap.setData(data);

Nah sedangkan untuk mendapatkannya
MainApp ap=(MainApp) getApplication();
                List data=ap.getData();
  
Nah simple kan passing data antar activity di android..

Selamat belajar
Facebook Comments

0 komentar