elektrik port üyelik servisleri elektrik port üyelik servisleri

Bundle İle Sayfalar Arası Veri Transferi |
Android Programlama - 13

Android programlamada yapılan projeler genellikle tek sayfadan oluşmaz. Geliştiriciler projenin akışına göre birden fazla sayfaya ihtiyaç duyabilir. Android programlamada sayfalar arası veri geçişi Intent ya da Bundle ile sağlanır. Bu yazımızda Bundle ile sayfalar arası veri transferini inceleyeceğiz.



A- A+
30.03.2015 tarihli yazı 20314 kez okunmuştur.
Android Programlamada sayfalar arası geçiş ve data transferi 2 şekilde sağlanır. Bunlardan birincisi Intent kullanımıdır. Diğeri ise Bundle kullanımıdır. Bu yazımızda Bundle ile sayfalar arası geçiş yapıp veri taşıyacağız. 
 
İlk olarak boş bir proje oluşturmamız gerekiyor. Boş proje oluşturulduktan sonra activity_main.xml içeriğini aşağıdaki şekildeki gibi düzenliyoruz.
 



►İlginizi Çekebilir : Layout Türleri | Android Programlama - 12 
 
 
Yukarıdaki şekildeki gibi activity_main.xml içeriğini düzenledikten sonra yeni bir sayfa oluşturuyoruz. Örnek projede bu sayfanın adı “Gecis.java” , XML’in adı da “gecis.xml” olarak ayarlanmıştır. Boş bir sayfa oluşturduktan sonra gecis.xml içeriğini aşağıdaki şekildeki gibi düzenliyoruz. 
 

Gecis.xml içeriğinde 3 adet textview yer almaktadır. Bunlardan birincisi kaçıncı sayfada olduğumuzu belirtmektedir. İkinci textview ise “Gelen Veri: ” şeklinde gelen verinin nerede olduğunu belirtmektedir. Son textview ise MainActivity.java sınıfından gelen veriyi göstermektedir. 

Yukarıdaki şekildeki gibi gecis.xml içeriğini ayarladıktan sonra artık sınıflarımıza gerekli kodlamaları yapabiliriz. İlk olarak veriyi göndereceğimiz MainActivity.java sınıfının içeriğini kodlamalıyız. MainActivity.java sınıfını aşağıdaki şekildeki gibi düzenliyoruz.
 
İlk olarak kullanacağımız bileşenleri  tanımlamakla kodlamaya başlıyoruz. Uygulamamızda birer adet buton ve edittext kullanıldığı için bu bileşenleri tanımlıyoruz. Ek olarak Bundle ile geçiş yapacağımız için “Bundle bnd” şeklinde değişken tanımlıyoruz ve onCreate metodu içerisinde Bundle sınıfından bir nesne türetiyoruz. Tanımlamalar yapıldıktan sonra Intent nesnesi tanımlayıp hangi sayfadan hangi sayfaya geçiş yapılacağını belirtiyoruz. Bu tanımlamayı “final” olarak yapıyoruz. Bunun sebebi Intent nesnesini butonun tıklama metodu içerisinde de kullanmak istememizden kaynaklanıyor. 
 
Butonun tıklama metodu içerisinde ilk olarak bir string değişkeni tanımlanıyor ve edittext bileşeninden gelen veriyi bu değişken üstünde taşıyor. Bundle olarak tanımladığımız “bnd” nesnesine putString() metodu ile string veriyi aktarıyoruz. Bu metod iki parametre almaktadır. İlk parametre gidecek olan anahtar kelime olarak geçmektedir. Diğer parametre ise gidecek olan veridir. Son olarak Intent ile oluşturduğumuz nesnenin içerisine bu işlemleri putExtras() metodu ile yollayıp startActivity() metodu ile de aktiviteyi başlatmamız gerekiyor. 

MainActivity.java sınıfının içeriğini kodladıktan sonra verinin gideceği sınıfı kodlamaya geçmemiz gerekmektedir. Gecis.java sınıfının içeriği aşağıdaki gibidir.
 
Bu sınıfta 3 adet textview tanımlanmasına rağmen tek bir textview tanımlaması yapılmıştır. Diğer iki textview sadece bilgi vermek amaçlı yazıldığı için tanımlamaya gerek yoktur. İlk olarak bir “Bundle gelen = getIntent().getExtras()” metodu ilen gelen nesneyi Bundle’a atıyoruz. Daha sonra gelen veri bir string yapıda olduğu için string değişkeni tanımlayıp getString() metodu ile gelen veriyi bu string değişkene atıyoruz. Parametre olarak MainActivity.java sınıfında anahtar kelime olarak kullanılan “veri” değer verilmektedir. Son adım olarak textview ile tanımlanan bileşenin içeriğini ayarlayarak kodlama kısmını bitiriyoruz. Uygulamanın ekran çıktısı aşağıdaki şekildeki gibidir.
 
Unutulmaması gereken önemli bir nokta Manifest.xml içeriğinin ayarlanmasıdır. Manifest.xml içeriğini açıp oluşturduğumuz diğer sınıfı tanımlamak gerekiyor. Eğer bu adımı pas geçersek uygulamamız butona bastığımız anda hata verecektir.

Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar