Если возникла необходимость передать вместе с интентом объект, то можно выбрать один из двух подходов:
1) Объявить объект как Serializable (быстрее закодить).
2) Объявить объект как Parcelable (быстрее работает).
Подход первый:
//имлементация public class IntentExtraObject implements Serializable { private static final long serialVersionUID = -1096217523172222472L;public String data0; public int data1; } ... //использование IntentExtraObject serializableObject = new IntentExtraObject(); serializableObject.data0 = "Hello"; serializableObject.data1 = 100500;
Intent intent = new Intent(); intent.putExtra("extra-name-0", serializableObject);
Подход второй:
//имплементация public class IntentExtraParcelable implements Parcelable { public String data0; public int data1;@Override public int describeContents() { return 0; }
@Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(data0); dest.writeInt(data1); }
public static final Parcelable.Creator
CREATOR = new Parcelable.Creator () { @Override public IntentExtraParcelable createFromParcel(Parcel in) { IntentExtraParcelable extraParcelable = new IntentExtraParcelable();
extraParcelable.data0 = in.readString(); extraParcelable.data1 = in.readInt();
return extraParcelable; }
@Override public IntentExtraParcelable[] newArray(int size) { throw new UnsupportedOperationException(); } }; }
...
//использование IntentExtraParcelable extraParcelable = new IntentExtraParcelable(); extraParcelable.data0 = "World"; extraParcelable.data1 = -100500;
Intent intent = new Intent(); intent.putExtra("extra-name-1", extraParcelable);
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: