SORU
24 AĞUSTOS 2011, ÇARŞAMBA


Nasıl benim özel nesneler Parcelable olmak yapabilirim?

Benim nesneleri Parcelable olmak için çalışıyorum. Ancak, özel nesneler ve bu nesneleri yaptım diğer özel nesneler arraylist özellikleri var.

Bu yapabileceğim en iyi yolu ne olurdu?

CEVAP
24 AĞUSTOS 2011, ÇARŞAMBA


Bu bazı örnekler bulabilirsinizhere, here (code is taken here),and here.

Bu POJO sınıfı oluşturabilirsiniz, ancak bazı ekstra kod Parcelable yapmak için eklemek gerekir. Bu uygulama bir göz atın.

public class Student implements Parcelable{
        private String id;
        private String name;
        private String grade;

        // Constructor
        public Student(String id, String name, String grade){
            this.id = id;
            this.name = name;
            this.grade = grade;
       }
       // Getter and setter methods
       .........
       .........

       // Parcelling part
       public Student(Parcel in){
           String[] data = new String[3];

           in.readStringArray(data);
           this.id = data[0];
           this.name = data[1];
           this.grade = data[2];
       }

       @Оverride
       public int describeContents(){
           return 0;
       }

       @Override
       public void writeToParcel(Parcel dest, int flags) {
           dest.writeStringArray(new String[] {this.id,
                                               this.name,
                                               this.grade});
       }
       public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
           public Student createFromParcel(Parcel in) {
               return new Student(in); 
           }

           public Student[] newArray(int size) {
               return new Student[size];
           }
       };
   }

Bu sınıfı oluşturduktan sonra, kolayca bu gibi Niyet ile bu sınıfın nesneleri geçiş ve hedef faaliyeti bu nesne kurtarabilirsiniz.

intent.putExtra("student", new Student("1","Mike","6"));

Burada, öğrenci paket veri unparcel gerektirecek olan anahtardır.

Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");

Bu örnekte, yalnızca Dize türleri gösterir. Ama, istediğiniz her türlü veri parsel. Bunu bir deneyin.

EDİT: Başka bir example, Rukmal Dias tarafından önerilen.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • Chaîne de TheMoustic

    Chaîne de T

    5 Kasım 2006
  • Tips On Linux

    Tips On Linu

    26 Temmuz 2008