SORU
26 Ocak 2010, Salı


Nasıl bir Niyet kullanarak bir Android etkinlikten bir nesne göndermek için?

Nasıl bir sınıf Intent putExtra() yöntemini kullanarak bir Activity özel bir türde bir nesne geçebilir miyim?

CEVAP
26 Ocak 2010, Salı


Eğer sadece etrafında nesneleri sonra yolunuz düşerse Parcelable bunun için tasarlanmıştır. Biraz daha Java kullanarak yerel seri hale getirme daha, ama çok daha hızlı bir şekilde yani. (ve kullanmak için bir çaba gerektirir ^strong>YOLdaha hızlı).

Doktorlar, uygulamak için basit bir örnek:

// simple class that just has one member property as an example
public class MyParcelable implements Parcelable {
    private int mData;

    /* everything below here is for implementing Parcelable */

    // 99.9% of the time you can just ignore this
    public int describeContents() {
        return 0;
    }

    // write your object's data to the passed-in Parcel
    public void writeToParcel(Parcel out, int flags) {
        out.writeInt(mData);
    }

    // this is used to regenerate your object. All Parcelables must have a CREATOR that implements these two methods
    public static final Parcelable.Creator<MyParcelable> CREATOR = new Parcelable.Creator<MyParcelable>() {
        public MyParcelable createFromParcel(Parcel in) {
            return new MyParcelable(in);
        }

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

    // example constructor that takes a Parcel and gives you an object populated with it's values
    private MyParcelable(Parcel in) {
        mData = in.readInt();
    }
}

Belirli bir Parsel almak için birden fazla alan var bu durumda, (FIFO bir yaklaşım) koydum aynı sırada bunu yapmalısınız inceleyin.

Sizin nesneleri Parcelable uygulamak sonra sadece ** 13 putExtra() ile içine atma meselesi ile ilgili bir şey

Intent i = new Intent();
i.putExtra("name_of_extra", myParcelableObject);

Sonra onları geri getParcelableExtra() ile dışarı çekin

Intent i = getIntent();
MyParcelable myParcelableObject = (MyParcelable) i.getParcelableExtra("name_of_extra");

Eğer Nesne Sınıfı Parcelable ve seri hale getirilebilir uygular sonra da atama yapmak emin olun:

i.putExtra((Parcelable) myParcelableObject);
i.putExtra((Serializable) myParcelableObject);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • iMasterful

    iMasterful

    11 EYLÜL 2009
  • SellerDp

    SellerDp

    27 EKİM 2009