Если возникла необходимость передать вместе с интентом объект, то можно выбрать один из двух подходов:

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);

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *