Я знаю, что было много вопросов по этой теме, но я не могу найти ответ для моего конкретного случая. В принципе у меня есть двухмерный массив довольно простого класса, который мне нужно передать. Я пытаюсь использовать Parcelable
и я побежал мой класс через this, чтобы получить это:Пропустить 2D-объект между действиями
import android.os.Parcel;
import android.os.Parcelable;
public class Notam implements Parcelable {
public String airfield;
public String identifier;
public String notamText;
public String fromTime;
public String untilTime;
public boolean hidden;
// one constructor
public Notam(String airfieldname, String newIdentifier, String newNotamText, String newFrom, String newUntil) {
airfield = airfieldname;
identifier = newIdentifier;
notamText = newNotamText;
fromTime = newFrom;
untilTime = newUntil;
}
public void setHidden(boolean changeHidden) {
hidden = changeHidden;
}
protected Notam(Parcel in) {
airfield = in.readString();
identifier = in.readString();
notamText = in.readString();
fromTime = in.readString();
untilTime = in.readString();
hidden = in.readByte() != 0x00;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(airfield);
dest.writeString(identifier);
dest.writeString(notamText);
dest.writeString(fromTime);
dest.writeString(untilTime);
dest.writeByte((byte) (hidden ? 0x01 : 0x00));
}
@SuppressWarnings("unused")
public static final Parcelable.Creator<Notam> CREATOR = new Parcelable.Creator<Notam>() {
@Override
public Notam createFromParcel(Parcel in) {
return new Notam(in);
}
@Override
public Notam[] newArray(int size) {
return new Notam[size];
}
};
}
Я пробовал всякие вещи, которые я нашел здесь, но теперь я потерял. На данный момент в Основной деятельности У меня есть
Notam[][] notamList = new Notam[10][100];
Intent intent = new Intent(this, NotamList.class);
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("notamList", notamList);
intent.putExtras(bundle);
startActivity(intent);
, а затем в принимающей деятельности:
Notam[][] notamList = new Notam[10][100];
Bundle data = getIntent().getExtras();
notamList = data.getParcelableArrayList("notamList");
Но это даже не близко к работе, поэтому я прошу вашу мудрость и руководство!
Просьба пояснить, что означает «даже не близко к работе». – Egor
Ну, у меня есть эта ошибка в главной деятельности «Метод putParcelableArrayList (String, ArrayList Extends Parcelable>) в типе Bundle не применим для аргументов (String, Notam [] [])" и в принимающей активности "Multiple маркеры на этой линии \t - несоответствие типа: не может конвертировать из NOTAM в NOTAM [] \t - несоответствие типа: не может конвертировать из ArrayList в NOTAM [] []» –
Gavin