Passing Object Between Activities

Activity’ler arası Object transferi

* Merhaba arkadaslar , yeni bir yazıda tekrar beraberiz

* Bugünkü konumuz Passing Object Between Actvities . Yani Activity’ler arasında nesne transferi nasıl yapılır ona bakıcaz .

* Daha önceden yazmış oldugum yazıda Activity’ler arasında nasıl veri transferi yapılacağından söz etmiştim . O yazıya buradan ulaşabilirsiniz .

* Hatırlayacağınız üzere İntent’lere primitif verileri yükleyebiliyorduk . Tabi String bunun istisnası . Daha kapsamlı ve karmaşık projelerde bu bize biraz zaman kaybı yaşatıcak ve Java’nın asıl gücü olan Obje’lerden faydalanamamış olucaz.

* Activity‘ler arasında Obje transferini gerçekleştirebilmek için öncelikle yapmamız gerekenleri bir listeleyim ;

  1. Öncelikle transfer edeceğimiz obje hangi sınıfıa ait ise o sınıfın Serializable interface’ini implements etmesi gerekir .
  2. Intent‘imize bu objeyi putExtra(anahtar,obje) ile yüklememiz lazım .
  3. Diğer Activity sınıfında ise getSerializable(anahtar) methodu ile o objeyi alıp hangi sınıfa ait ise o sınıfa cast etmek .

* Örnek bir uygulama üzerinden gitmek daha sağlıklı . Örneğimizde Student diye bir class’ımız mevcut .

* Yapacağımız iş ; Kullanıcıdan Student nesnesi oluştuıracak parametreleri alıp nesnesini olustruktdan sonra diğer Activity’e geçerek Student’ın bilgilerini ekrana basmak olacak .

* Örnek çıktılar ;

 

 

 

 

 

 

 

 

 

 

* Layout kod kısmı ;

  • Student bilgilerini alacagımız activity_main.xml ;

     
  • Student nesnesini bilgilerini göstereceğimiz student_info.xml ;

     

* Gelelim Java kod kısımlarına . Öncelikle Student class’ımızı görmekte fayda var . Şöyle ki ;

* Göreceğiniz gibi gayet basit bir sınıf tasarımı var . Ad , Soyad ,Cinsiyet ve Numara‘dan olusmakta . toString() methodu nesnemizin bilgisini bize döndürecek.

* MainActivity.java dosyamız ;

 

* MainActivity^de artık standart olarak yaptığımız olan Layoutt’a bulunan nesneleri tanımladık . Sonra EditText‘lerdeki bilgileri alıp Student nesnemizi olusturuyoruz . Ve Intent nesnemize student nesnemizi ekliyoruz . Gayet basit arkadaslar .

* Gelelim diğer Activity’mize . Şöyle ki ;

* Göreceğiniz üzere kodlarımız gayet basit , kısa ve anlaşılır .

* Sırasıyla ;

  • Yeni bir İntent nesnesi olusturup getIntent() ile Activity‘i çağıran intent’i alıyoruz .
  • Daha sonra Student nesnemizi olusturup intent üzerinden getSerializableExtra(anahtar) ile nesnemizi alıyoruz .
  • Bu method bize Object nesnesi döndürmekte ve biz bunu Student sınıfına cast ediyoruz .
  • Unutmamayın , Java‘ın en süper sınıfı Object sınıfıdır . Bu sayede cast işlemini gerçekleştiriyoruz .
  • Daha sonra nesnemizin toString() methodu ile TextView üzerinde bilgileri gösteriyoruz .

* Evet arkadaslar yazımızın sonuna geldik . Şunu söylemeliyim ki , projelerinizde bu yapıyı er geç kullanacaksınız , kullanmalısızda .

* Eğer Obje transfer ederek değilde normal yolla yapsaydık ne olurdu bir görelim ;

* Ne kadar da uzadı değil mi ? Birde bunu diğer Activity^de karşılamak var , işiniz yoksa bir o kadar kodu da orada yazın

* Yok yok yazmayın Objeyi transfer edin en iyisi

* Kaynak kodlar :  Passing Object Between Actvities

* Bir sonraki yazıda görüşmek üzere .

~ Alican Akkus

 

1107 Total Views 3 Views Today