Вы ищете Parcelable
.
Простым, хотя и не оптимальным решением является Serializable
.
Отрывок:
public class MyParcelable implements Parcelable {
private int mData;
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(mData);
}
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];
}
};
private MyParcelable(Parcel in) {
mData = in.readInt();
}
}
Использование:
// Sender class
MyParcelable mp = new MyParcelable();
intent.putExtra("KEY_PARCEL", mp);
// Receiver class
Bundle data = getIntent().getExtras();
MyParcelable student = (Myparcelable)data.getParcelable("KEY_PARCEL");
Here's рабочий пример.
EDIT: Вот как это сделать с фрагментами.
// Receiver class
Bundle data = getIntent().getExtras();
public class MyFragment extends Fragment {
public static MyFragment newInstance(int index, Bundle data) {
MyFragment f = new MyFragment();
data.putInt("index", index);
f.setArguments(data);
return f;
}
}
// In the fragment
Bundle data = getArguments();
Для того, чтобы прояснить для noobs, подобных мне, это должно быть getActivity(). GetIntent(). GetExtras(), если используется в фрагментах! –
@ Ashl7, который будет работать, но не является хорошей практикой дизайна. Я обновил свой ответ. – prakharsingh95