Изменение списка ArrayList<>, принадлежащего к одной Activity, внутри другой Activity
Внутри MainActivity существует список
ArrayList<Card> list = new ArrayList<>();
,который я передаю в EditObjectActivity c помощью Intent:
public void createObject(View view){
Intent intent = new Intent(this, EditObjectActivity.class);
intent.putExtra(Card.class.getSimpleName(), list);
startActivity(intent);
}
Внутри EditObjectActivity я изменяю список, переданный из MainActivity, добавляя туда новый объект:
Intent intent = new Intent(this, MainActivity.class);
Bundle list = getIntent().getExtras();
assert list != null;
ArrayList<Card> cardList = (ArrayList<Card>) list.getSerializable(Card.class.getSimpleName());
cardList.add(new Card(newItem.getName(), newItem.getSubtype(), newItem.getInventoryNumber()));
intent.putExtra(Card.class.getSimpleName(), cardList);
startActivity(intent);
Как изначальный список, хранящийся в MainActivity, приравнять к тому, что было передано через intent?
Ответы (1 шт):
Есть два варианта, простой и более правильный.
Простой, вы можете шарить свой список через интент из первой активити во вторую запуская ее с помощью метода startActivityForResult и возвращая измененный список в метод onActivityResult. Но это решение не гибкое, да и вообще я не рекомендую вам им пользоваться.
Второе более сложное. Это хранить ваш список в какой-то сущности которая живёт независимо от ваших активити. Возможно даже в базу данных.