Если возникла необходимость передать вместе с интентом объект, то можно выбрать один из двух подходов:
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);
