Android Bundle Kullanımı

Android uygulamalarında genelde kullanılan bir yapı olan Bundle‘lardan bahsedeceğim bu yazıda.Activity’ler arasında veri iletişimini sağlayan bundle’ları, veritabanından çektiğimiz datalarla da doldurup, daha kompleks uygulamalar da yazabilmemiz mümkün.Bu tarz bir uygulamanın yazısı da sonraya kalsın.Daha basit bir uygulama üzerinde Bundle’lardan bahsedeceğim.

public class BundleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText girdi=(EditText) findViewById(R.id.editText1);
Button buton=(Button) findViewById(R.id.button1);
final Bundle bundle=new Bundle();
final Intent intent=new Intent(“com.band.Ekran2”);
buton.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

String veri=girdi.getText().toString();
bundle.putString(“deger”,veri);

intent.putExtras(bundle);
startActivity(intent);

}
});
Kodlarda da gördüğümüz gibi Bundle activity’mizde Edittext ve Textview UI elemanlarını kullandık.Daha sonra bu view elemanlarına referansla ulaşıyoruz ve Bundle class’ından bundle instance’ı oluşturuyoruz.Verileri aktarmamızı sağlayacak bu yapıya putString() metodu ile bir key ve edittext’ten aldığımız string değerini de value olarak eklettiriyoruz.Key koymamız başka bir activity’den bu bundle’a ulaşmamız için gereklidir.Daha sonra da Intent nesnemize bu bundle’ı ekliyoruz ve diğer activity’i başlatıyoruz.Aslında oldukça basit bir yapısı var.Şimdi de diğer activity’mizin kodlarına bakalım.
public class Ekran2 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.ekran2);
Button butonum=(Button) findViewById(R.id.button1);
butonum.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

Bundle datalar=getIntent().getExtras();
String donenler=datalar.getString(“deger”);
Toast.makeText(Ekran2.this,”Donenler:”+” “+donenler, Toast.LENGTH_LONG).show();

}
});

}

}
Bu activity içinde ayrı bir layout dosyası oluşturduk.Bu xml dosyamız gayet açık sadece tek buton ve bir background image’inden olusuyor.Bu yüzden xml kodlarını yazmaya gerek duymuyorum.Ekran2 activity’mize dönersek, butona tıklandığında yarattığımızdatalar referansıyla bu activity’e gönderilen bundle’a erişiyoruz. Sonra da bu bundle referansıyla da deger diye adlandırdığımız key’in degerine ulaşmış oluyoruz.Ve bu değeri de mesaj olarak ekrana bastırıyoruz.

NOT: İkinci activity dosyanızı manifest.xml dosyasına deklare etmeyi unutmayın.Görüşlerinizi bekliyorum.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir