Как передавать 2D массив распределяемых объектов (T реализует Parcelable) [][] между действиями?

#android #arrays #android-intent #parcelable

#Android #массивы #android-намерение #разделяемый

Вопрос:

Как отправить 2D массив объектов, подлежащих отправке, в другое действие с помощью intent? Любая помощь?

Вот мой разделяемый пользовательский объект:

 public class PTagData implements Parcelable {
    public int mStartWordIndex;

    public PTagData(int startWordIndex) {
        this.mWordsPerRow = wordsPerRow;
    }

    protected PTagData(Parcel in) {
        mStartWordIndex = in.readInt();
    }
    public static final Creator<PTagData> CREATOR = new Creator<PTagData>() {
        @Override
        public PTagData createFromParcel(Parcel in) {
            return new PTagData(in);
        }

        @Override
        public PTagData[] newArray(int size) {
            return new PTagData[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(mStartWordIndex);
    }
}
  

Я создаю объект, подобный этому :

 final PTagData[][] datas = new PTagDatas[2][30];

for (int i = 0; i < 2; i  ) {
    for (int j = 0; j < 30; j  ) {
        datas[i, j] = getTagDatas(i, j);
    }
}
  

Как передать такой объект другому действию?

Комментарии:

1. в качестве обходного пути вы могли бы создать класс SomeClass , который будет реализовывать parcellable и содержать 1D массив вашего объекта, затем вы создаете другой 1D массив SomeClass и передаете его как 1D массив Parcellable. Или также вы можете объединить свой 2D массив в одномерный массив, а затем разделить его обратно на 2D

2. Второе решение кажется лучше.

3. это все зависит от вас. Стандартного способа сделать это нет, вы можете выбрать любой обходной путь, который вам нужен.