Wenn Sie nur Objekte weitergeben, dann Paketfähig wurde für diesen Zweck entwickelt. Es erfordert ein wenig mehr Aufwand als die Verwendung der nativen Java-Serialisierung, aber es ist viel schneller (und ich meine viel, WEG schneller).
Ein einfaches Beispiel für die Implementierung findet sich in den Dokumenten:
// 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
@Override
public int describeContents() {
return 0;
}
// write your object's data to the passed-in Parcel
@Override
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();
}
}
Wenn Sie mehr als ein Feld aus einem bestimmten Paket abrufen möchten, müssen Sie dies in der gleichen Reihenfolge tun, in der Sie sie eingegeben haben (d. h. nach dem FIFO-Prinzip).
Sobald Sie Ihre Objekte implementiert haben Parcelable
Sie müssen sie nur noch in Ihr System einbauen. Beabsichtigt con putExtra() :
Intent i = new Intent();
i.putExtra("name_of_extra", myParcelableObject);
Dann können Sie sie mit getParcelableExtra() :
Intent i = getIntent();
MyParcelable myParcelableObject = (MyParcelable) i.getParcelableExtra("name_of_extra");
Wenn Ihre Objektklasse Parcelable und Serializable implementiert, dann stellen Sie sicher, dass Sie eine der folgenden Möglichkeiten nutzen:
i.putExtra("parcelable_extra", (Parcelable) myParcelableObject);
i.putExtra("serializable_extra", (Serializable) myParcelableObject);
0 Stimmen
@UMMA - Sie brauchen Ihre Fragen nicht ständig als "Community Wiki" zu markieren. Schauen Sie hier nach: meta.stackexchange.com/questions/11740/
1 Stimmen
@Paresh: Der von Ihnen angegebene Link ist defekt. Könnten Sie bitte eine Alternative angeben?
0 Stimmen
Mögliche Duplikate von Wie man in Android ein Objekt von einer Aktivität an eine andere weitergibt
0 Stimmen
Sehen Sie sich diese Antwort an. stackoverflow.com/questions/8857546/
0 Stimmen
Ich habe eine einfache und elegante Methode gefunden stackoverflow.com/a/37774966/6456129