Android Dersleri

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.

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.

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.

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.

 

Ş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.

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

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.

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.

Yorumları Göster

  • Ş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.

  • 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 ?

    • Bundle ile classınızın yolunu verin com.example... vs gibi
      Daha sonra bu string ifadeyi webview ile açın

  • 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

    • Hocam kopyala yapıştır yapmaya alışmayın diye böyle yaptım. Benim de işime gelirdi resmini almayıp doğrudan buraya kodu yapıştırmak.

Son Gönderiler

Android Firebase Event (not set) Hatası Çözümü

Merhaba. Firebase Events'e istatistik attığınızda not set şeklinde bir değer görüyorsanız olası çözümünü göstereceğim. (daha&helliip;) Daha Fazla Oku

% gün önce

Namaz Vakitleri Uygulaması Yayında

Merhaba. Android cihazlar için hazırladığım Namaz Vakitleri uygulaması ile 200'e yakın ülkede tüm namaz-ezan vakitlerini… Daha Fazla Oku

% gün önce

Kaza Namazı ve Oruç Takip Uygulaması

Selamlar. İnsanlar için faydalı olması amacıyla geliştirdiğim Kaza Namazı ve Oruç Takip Uygulamasını sizlere tanıtmak… Daha Fazla Oku

% gün önce

Android Volley Kullanımı ve JSON Parse İşlemleri

Volley, Android uygulamalarımızda kullandığımız AsyncTask'ın alternatifi olarak ortaya çıkarılan, Google I/O 2013 sunumunda duyurulan bir… Daha Fazla Oku

% gün önce

Android ButterKnife Kütüphanesi Kullanımı

Merhaba. Bu yazımda Android platformunda kullanıma sunulan, bazı kod bloklarını basitleştiren ve okunabilirliği arttıran ButterKnife… Daha Fazla Oku

% gün önce

Admob TikTok Reklamları Engelleme

Merhaba. Bu yazımda artık baş belası olmuş TikTok reklamlarını, Android uygulamalarımızdaki Admob reklamlarından nasıl kaldıracağımızı… Daha Fazla Oku

% gün önce