У меня есть recycleview с данными и мне надо передать все данные items в другое активити,как мне это реализовать?
Ответ
Зачем делать такой костыль как в предыдущем ответе, если любую модель можно сделать сериализуемой (implements Parcelable) и передавать всю модель целиком?
Кладем в intent:
intent.putExtra("parcelable", myParcelables.get(position))
Берем из intent:
MyParcelable model = getIntent().getParcelableExtra("parcelable")
пример реализации:
public class Country implements Parcelable {
private String code;
private String name;
private String tag;
private int limit;
private String image;
public Country(JSONParser data) {
code = data.getString("code");
name = data.getString("value");
tag = data.getString("flag");
image = data.getString("image");
if (data.contains("limit")) {
limit = data.getInt("limit") - code.length();
}
}
public Country(Parcel in) {
code = in.readString();
name = in.readString();
tag = in.readString();
image = in.readString();
limit = in.readInt();
}
public static final Creator
@Override
public Country[] newArray(int size) {
return new Country[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(code);
dest.writeString(name);
dest.writeString(tag);
dest.writeString(image);
dest.writeInt(limit);
}
public String getClearCode() {
return code;
}
public String getCode() {
return "+" + code;
}
public String getName() {
return name;
}
public String getTag() {
return tag;
}
public int getLimit() {
return limit;
}
public String getImage() {
return image;
}
}
P.S.
Чтобы не словить BadParcelableException при передаче между активностями
Parcelable-конструктор должен инициализировать данные в том же порядке, в котором они были записаны в Parcel в методе void writeToParcel(Parcel, int)
Комментариев нет:
Отправить комментарий