4-Aktiviteler arası veri taşıma yöntemleri-Parcelable (Kotlin)

Sinan Çakır
2 min readFeb 9, 2018

--

Parcelable ile veri taşımak için, Parcelable interface ‘ sinden implement edilmiş bir class ‘ a ihtiyaç vardır.

data class UserModelParcelable(val name: String, val phone: String)

Class yazıldıktan sonra sonuna yazılan ‘ : Parcelable ‘ ifadesi ile Parcelable ‘ dan implement edilir.

data class UserModelParcelable(val name: String, val phone: String) : Parcelable

Android Studio burada, Parcelable interface ‘ sindeki metotların override edilmesi gerektiğiyle alakalı bir uyarı çıkartır. Class ‘ ın içindeki parametreler yazılıp bu metotlar override edilir ise IDE otomatik olarak Parcelable ile ilgili okuma ve yazma metotlarını dolduracaktır.

Bundan sonraki aşamalar Serializable ile benzerlik gösterir.

Intent oluşturuldu.

val intent = Intent(this, DataParcelableActivity::class.java)

Parcelable ile gönderilmek istenen class değerlerine, EditText ‘ lerden okunan veriler eklenir ve nesnesi oluşturulur.

val userModel = UserModelParcelable(edtName!!.text.toString(), edtPhone!!.text.toString())

Oluşturulan Parcelable yapılmış class Intent ‘ e koyulur.

intent.putExtra(“UserModelParcelable”, userModel)

Ve Intent başlatılır.

startActivity(intent)

Gönderilen veriyi okumak için başka bir Kotlin class oluşturulur. intent.extras.getParcelable(“key bilgisi”) metodu ile veri okunur ve hangi class Parcelable edildi ise o class ‘ a cast edilir. (as UserModelParcelable)

userModel = intent.extras.getParcelable(“UserModelParcelable”) as UserModelParcelable

Bu satıra bir debug key koyulup, debug modda çalıştırılır ise userModel ‘ de name ve phone bilgisinin tutulduğu görülür.

Bu verileri TextView ‘ a yazdırmak için name ve phone bilgisini ayrı bir şekilde yazdırmak gerekir. Yine userModel, Parcelable edilen class ‘ a cast edilmelidir.

activity_data_txtData.text = “Name : “ + (userModel as UserModelParcelable).name + “\nPhone : “ + (userModel as UserModelParcelable).phone

Parcelable ile veri bu şekilde gönderildi ve okundu.

Parcelable, Android geliştiricilerinin yaptığı testlere göre veri taşımada en hızlı yoldur.

Parcelable vs Serializable

Uygulamanın tüm kodlarına buradan ulaşabilirsiniz.

--

--