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 panggilMainApp 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
Tidak ada komentar:
Posting Komentar