Android

Android Parcelable Arayüzü Kullanarak Liste Öğelerini Transfer Etme

Bu örnekte bir sınıf türünden oluşturulmuş olan listelerin activity’ ler arası nasıl transfer edileceğini göreceksiniz.

Örneğimizde Mekan isminde bir Class oluşturarak bu sınıfa Parcelable arayüzünü implement edeceğiz.

Parcelable arayüzü, bir nesneyi başka bir aktivite veya süreç arasında geçirmek için kullanılan bir arayüzdür.

Bu arayüzü uygulayan bir sınıf, nesnelerini bir veri paketine yazabilir ve daha sonra bu veri paketini başka bir nesneye veya aktiviteye aktarabilir. Parcelable arayüzü, Android uygulama geliştirme sürecinde sıklıkla kullanılır ve uygulamalar arasında veri aktarımı sağlar.

Bu sınıfın Parcelable arayüzünü uyguladığını belirtmesi, bu sınıfın nesnelerinin Android uygulamaları arasında kolayca geçirilebileceği anlamına gelir. Bu sınıfın nesneleri, Intent’ler aracılığıyla diğer aktivitelere veya süreçlere aktarılabilir veya Bundle objelerinde depolanabilir ve daha sonra geri yüklenebilir.

Mekan sınıfımız resim, ad ve açıklama alanlarından oluşmaktadır.

Parcelable arayüzü, nesnelerin veri paketlerine yazılması ve daha sonra okunması için gerekli yöntemleri tanımlar. Bu yöntemler, aşağıdaki gibi eklenir:

  1. describeContents() yöntemi: Bu yöntem, nesne için bir açıklama içeren bir int değeri döndürür. Bu değer, 0’dan farklı bir değer döndürürse, nesnenin yazılması veya okunması sırasında özel işlemler yapılacağını gösterir.
  2. writeToParcel(Parcel dest, int flags) yöntemi: Bu yöntem, nesne verilerini bir Parcel objesine yazarak nesneyi serileştirir. dest parametresi, verilerin yazılacağı hedef Parcel objesini belirtir. flags parametresi, serileştirme sırasında kullanılacak seçenekleri belirtir.
  3. CREATOR sabiti: Bu sabit, Parcelable.Creator arayüzünü uygulayan bir sınıfın örneğini belirtir ve Parcel objesindeki verileri kullanarak nesne örneklerini oluşturmak için kullanılır.

Bu yöntemler, Parcelable arayüzünü uygulayan bir sınıfa eklenir. Ayrıca, nesne için gerekli tüm verilerin uygun şekilde serileştirilmesi gerektiğini unutmayın. Bu veriler, writeToParcel yöntemi aracılığıyla Parcel objesine yazılmalıdır.

Şimdi kodlarımızın tam haline bakalım. Projemizde MainActivity.java, DetailActivity.java ve Mekan.java dosyalarımız bulunmaktadır. Ayrıca kullanacağımız açıklamaları strings.xml dosyasında saklayacağız.

Mekan.java

activity_main.xml

activity_detail.xml

MainActivity.java dosyamız:

DetailActivity.java dosyamız:

strings.xml dosyamız

Ekran Çıktısı:

Yorum yap