Selamlar,

http://developer.android.com/reference/android/os/Bundle.html adresinden de baktım, anlamadım. Android'te bir aktivitenin sıradan bir olayında (onCreate(), onResume() vs.) hep Bundle öğesini görüyorum.

İstediğimiz isimde Bundle'ı bu fonksiyonlara dahil edebiliyoruz. Ancak ben bu Bundle'ı sadece super sınıfının altında .onCreate() metodundan başka kullanan bir metot görmüyorum.

  • Bundle'lar ne işe yarar?
  • Niçin fonksiyonlarda veya metotlarda kullanılır?
  • Bundle kullanmazsak ne yapmak icap eder?

Sevgiyle, saygıyla...

soruldu: 01 May '12, 23:07

murtaza's gravatar image

murtaza
981122535
cevap kabul oranı: 29%

değiştirildi: 02 May '12, 02:12

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

Şurada Bundle nesnesinin farklı aktiviteler arasında veri taşımak amaçlı kullanımıyla ilgili basit bir örnek var: http://www.gokselguren.com/mobil-yazilim-gelistirme/android-yazilim-gelistirme/android-yardimci-kodlar-menu/62-android-intentler-arasinda-bundle-ile-veri-aktarma.html

(09 Haz '12, 20:52) murtaza murtaza's gravatar image

Android de kullanilan Bundle, aslinda bir HashMap den baska bir sey degil. Eger bu sinifin kaynak koduna bakarsan, orda bir HashMap oldugunu ve aslinda Bundle sinifinda bulunan bütün Methodlar bu HashMap üzerinde islemler yaptigini görürsün. Bundle lar, bir Activity den digerine bilgi(parametre) göndermek icin kullaniliyor. Örnegin

public void onCreate(String viewTitle, Integer viewSize, Double xyz, ...)

seklinde bir kod yazmak yerine, bütün bu parametreleri key/value seklinde bir Bundle(HashMap diyelim) in icine koyarsak, biraz önce yazdigimiz kodu söyle yazabiliriz.

public void onCreate(Bundle viewState)

Burda ki onCreate Methodu Activity sinifina aittir, Activity ilk yüklenirken cagrilir ve her Activity bu methodun üzerini yazar. Her programci bir aktivity den digerine farkli farkli tipte ve sayida parametreler göndermek istiyecegine göre, en iyi cözüm bir HashMap olur ki, Bundle sinifi da bu istedigin HashMap i ve daha bir cok yararli funktionu sana verir.

Burda cok güzel bir örnek var.

permanent link

cevaplandı: 02 May '12, 04:04

mceliksoy's gravatar image

mceliksoy ♦
6.5k84988
cevap kabul oranı: 25%

değiştirildi: 02 May '12, 04:13

1

artı olarak bu durumu sadece android için düşünme; mesela şöyle bir durumda olabilir, mesela bir ekran tasarlıyorsun, bu ekrandan başka bir ekran açılmasını istiyorsun ama açılan ekranında bir önceki ekrandan gelen parametreleri kullanarak açılmasın diyorsun; o zaman bir önceki ekranın bundle veyahut PageState vs ne isimde olursa olsun çok önemli değil ikinci ekrana pass edip içindeki verileri kullanabilirsin. Güzel bir tasarım mantığı.

(02 May '12, 05:12) gklp gklp's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×818
×2

Soruldu: 01 May '12, 23:07

Görüntüleme: 5,617 kez

Son güncelleme: 09 Haz '12, 20:52

powered by BitNami OSQA