Anasayfa / Android Dersleri / Android Dersleri 16 : Bundle ile Sayfalar Arası Veri Alışverişi

Android Dersleri 16 : Bundle ile Sayfalar Arası Veri Alışverişi

Merhaba. Android derslerine hız kesmeden devam edelim. Bu yazımda, sayfalar arası veri aktarımını sağlayan bir diğer yöntem olan Bundle kullanımını anlatacağım.

Projeyi oluşturduğunuzu varsayarak doğrudan ilk sayfamızın görüntüsünü vererek başlayalım. Uygulamamızın giriş sayfasını aşağıdaki gibi yapın.

android bundle

Sarı ünlem hatalarını, sizin hallettiğinizi varsayıyorum yine. Bunları strings.xml sayfasından düzeltebiliyordunuz hatırlarsanız. Şimdi uygulamamızda yeni bir sayfa oluşturalım ve onun görüntüsünü de şu şekilde yapalım.

android bundle

Bu uygulamamızın 2.sayfası. LargeText kısmına, ilk sayfada girilen değeri yazacak. Tabi bu veri aktarmayı Bundle ile yapacağız. Şimdi AndroidManifest dosyamızın görüntüsüne bakalım. Eklediğimiz bu 2.sayfa için bir activity tagı eklememiz gerekiyor. Onu da şu şekilde yaptım. Sadece 2 satır kod ekledim.

android bundle

Bakın burada sonraki <activity> etiketini ekledik. Şimdi görsel kısım bittikten sonra kodlamaya geçelim. İlk olarak MainActivity sınıfımızda yani anasayfamıza ait olan sınıfta kodlamalar yapalım.

android bundle

 

Şimdi buradaki numaralı alanları anlatalım.

1 numaralı alanda Bundle, Buton ve Edittext‘ten birer nesne oluşturduk.

2 numaralı alanda bunları id’leri ile bağladık (Bundle hariç). Bundle için id bulunmuyor.

3 numaralı alanda bir Intent nesnesi oluşturduk. Parametre olarak ilkini sabit bir değer, diğerini ise hangi sayfanın sınıfı açılacak onu yazdık.

4 numaralı alanda, butona tıklandığında bir Listener oluşturduk.

5 numaralı alanda, butonun tıklanma olayını yazdık. Buraya tıklandığında olacaklar yazıldı.

6 numaralı alanda, edittext içerisine yazılan değer bir String değişkene atandı. Bunun için gettext() metodu kullanılır.

7 numaralı alanda Bundle’dan oluşturduğumuz bnd nesnesi üzerinden putString() metodunu çağırdık. İlk parametre, girilen değeri nerede tutacağımızı gösterir. Bu değeri, diğer sayfada alırken de yine bu “veri” ‘yi kullanacağız. 2.parametre ise aktarılacak değerdir.

8 numaralı alanda intent’den oluşturduğumuz i nesnesi üzerinden putExtras() metodunu çağırdık. Parametre olarak da bnd nesnesini verdik. Bu nesne bizim değerimizi taşıyacak nesnedir.

9 numaralı alanda da son olarak bir aktivite başlattık ve parametre olarak da intent nesnesini verdik.

Şimdi son olarak da oluşturduğumuz diğer sayfanın kodlarını verelim.

android bundle

Burada ilk olarak bağlama yaptık. Daha sonra yine bir Bundle nesnesi oluşturduk ve buna getIntent() metodu ile alınan extraları atadık. Daha sonra bu alinan nesnesi’nin getString() metodunu çağırarak taşınan değeri String olarak aldık ve son olarak da bunu goster adlı Textview‘a aktardık.

Ekran Görüntüleri

android bundle android bundle

Görüldüğü gibi butona basında diğer sayfaya bu girilen değeri taşıdı ve 2.ekranda bu değeri yazdırdı. Son olarak da uygulamamızdaki dosyaları göstermekte fayda var. Projemizin dosyaları aşağıdaki gibidir.

android bundle

Bu derste, sayfalar yani aktiviteler arası veri alışverişi yapmanın 2.yöntemi olan Bundle’ı anlattım. Diğer derslerde görüşmek üzere.

Mehmet Kirazlı

İstanbul Eyüp'te ikamet ediyorum. Giresun Alucra'lıyım. Bilgisayar Mühendisliği bölümünden 2013 yılında mezun oldum. "Yeni Başlayanlar için Java 8" kitabının yazarıyım. Şu anda özel bir firmada Mobil Yazılım Geliştirme Uzmanı olarak çalışıyorum.

İlginizi Çekebilir

Android Dersleri 29 : Telefon Rehberi Uygulaması Yapıyoruz

Merhaba. Yine uzunca bir aradan sonra yazmaya devam ediyorum. Bu yazımda,  veritabanında değinmediğim Where ifadesine yer …

6 Yorumlar

  1. Şahsen ezbere gitmeyi hiç sevmiyorum, bundle’ın ne yararı olduğunu bilmiyorsam,nerede kullanacağımı bilmiyorsam öğrenmemin hiç bir mantığı yok.

    Bundle ile veri aktarımının amacı ne? Ne gibi yararları var? Sonuçta veriyi normal bir string olarak tutarakta aktarabilirdim.

  2. Bir fragment tan diğer bir fragment a obje aktarımını nasıl yapabiliriz?

  3. Hocam çok güzel anlatımlarınız. Bi sorum var.
    Benim yapmak istediğim. Menü ve Webview classlarım var. Menü sayfamdaki butonlara tıklandığında belirdeğim siteleri WebView classımda açtırmak istiyorum. Nasıl yapabilirim. Daha doğrusu yaptım ama hata veriyor bu “Bundle” mantığını kullanarak yapabilir miyiz ?

  4. hacı iyi güzel anlatmışsın da bunları ekran görüntüsü şeklinde paylşamna saçma olmuş. Kod olarak paylaşmalısın

Bir cevap yazın

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