Как передать vector через intent?

Передача вектора через Intent в Android возможна с использованием Serializable или Parcelable. Оба интерфейса позволяют сериализовать объекты для передачи между компонентами Android, но Parcelable является более эффективным по производительности и рекомендуется для передачи больших объемов данных.

Для передачи вектора с помощью Parcelable, вам необходимо сделать следующее:

1. Создайте класс, реализующий интерфейс Parcelable, который будет представлять ваш вектор. Для примера, допустим, что ваш вектор содержит строки:

public class MyVector implements Parcelable {
    private ArrayList<String> vectorItems;

    public MyVector(ArrayList<String> items) {
        this.vectorItems = items;
    }

    protected MyVector(Parcel in) {
        vectorItems = in.createStringArrayList();
    }

    public static final Creator<MyVector> CREATOR = new Creator<MyVector>() {
        @Override
        public MyVector createFromParcel(Parcel in) {
            return new MyVector(in);
        }

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

    public ArrayList<String> getVectorItems() {
        return vectorItems;
    }

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

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

2. Теперь, чтобы передать вектор через Intent, вам нужно создать экземпляр вашего класса MyVector, установить его в Intent с использованием метода putExtra() и отправить Intent, как обычно:

ArrayList<String> vectorItems = new ArrayList<>();
vectorItems.add("Item 1");
vectorItems.add("Item 2");
vectorItems.add("Item 3");

MyVector myVector = new MyVector(vectorItems);

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("vector", myVector);
startActivity(intent);

3. В целевой активности (SecondActivity), вы должны получить переданный вектор с использованием метода getParcelableExtra():

MyVector myVector = getIntent().getParcelableExtra("vector");
ArrayList<String> vectorItems = myVector.getVectorItems();

Теперь у вас есть вектор, переданный через Intent, и вы можете использовать его в вашей активности.