Android Bundle Get Class From Serializeable

Android Bundle’dan Serileştirilebilir Sınıfları Alma

Android’de, verileri bir aktivite veya fragment arasında aktarmak için Bundle nesneleri kullanılır. Bundle’lar, temel veri türlerinin yanı sıra serileştirilebilir nesneleri de depolayabilir. Serileştirilebilir nesneler, durumlarını kalıcı bir depolama ortamına yazabilen ve daha sonra bu durumdan yeniden oluşturulabilen nesnelerdir.

Bu makale, Android Bundle’dan serileştirilebilir sınıfları nasıl alacağınızı adım adım açıklayacaktır.

Serileştirilebilir Sınıflar Oluşturma

Serileştirilebilir bir sınıf oluşturmak için Serializable arayüzünü uygulamanız gerekir. Bu arayüz, writeObject ve readObject adlı iki yöntemi tanımlar. writeObject yöntemi, nesnenin durumunu bir ObjectOutputStream nesnesine yazar ve readObject yöntemi, nesnenin durumunu bir ObjectInputStream nesnesinden okur.

Örneğin, aşağıdaki sınıf bir Person nesnesini serileştirir:

“`java
public class Person implements Serializable {

private String name;
private int age;

public Person(String name, int age) {
    this.name = name;
    this.age = age;
}

@Override
public void writeObject(ObjectOutputStream out) throws IOException {
    out.writeObject(name);
    out.writeInt(age);
}

@Override
public void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    name = (String) in.readObject();
    age = in.readInt();
}

}
“`

Serileştirilebilir Nesneleri Bundle’a Ekleme

Serileştirilebilir bir nesneyi Bundle’a eklemek için putSerializable yöntemini kullanabilirsiniz. Bu yöntem, nesnenin sınıf adını anahtar olarak ve nesnenin kendisini değer olarak alır.

Örneğin, aşağıdaki kod bir Person nesnesini bir Bundle’a ekler:

java
Bundle bundle = new Bundle();
bundle.putSerializable("person", new Person("John Doe", 30));

Serileştirilebilir Nesneleri Bundle’dan Alma

Serileştirilebilir bir nesneyi Bundle’dan almak için getSerializable yöntemini kullanabilirsiniz. Bu yöntem, nesnenin sınıf adını anahtar olarak alır ve nesnenin kendisini değer olarak döndürür.

Örneğin, aşağıdaki kod bir Bundle’dan bir Person nesnesi alır:

java
Bundle bundle = new Bundle();
Person person = (Person) bundle.getSerializable("person");

Önemli Hususlar

  • Serileştirilebilir sınıflar, geçici durumlarını kalıcı bir depolama ortamına yazabilmelidir.
  • Serileştirilebilir sınıflar, durumlarını daha sonra yeniden oluşturabilmelidir.
  • Serileştirilebilir sınıflar, farklı JVM’lerde serileştirilebilir ve yeniden oluşturulabilir olmalıdır.

Faydalı Kaynaklar


Yayımlandı