Передача вектора через 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, и вы можете использовать его в вашей активности.