Возможно, вы захотите использовать шаблон дизайна Singleton: создайте класс и ограничьте его только одним экземпляром, который будет содержать список продуктов. После этого, доступ к этому экземпляру и тот же список из обоих ваших действий:
// singleton Manager
public class ProductManager {
private static ProductManager sInstance;
private List<Product> mProducts;
// private constructor to limit new instance creation
private ProductManager() {
// may be empty
}
public static ProductManager getInstance() {
if (sInstance == null) {
sInstance = new ProductManager();
}
return sInstance;
}
public List<Product> getProducts() {
return new ArrayList<>(mProducts);
}
// add logic to fill the Products list
public void setProducts(List<Product> products) {
mProducts = new ArrayList<>(products);
}
}
Доступ позже от обоих видов деятельности:
MyListActivity.java:
// set products once you get them
ProductManager.getInstance().setProducts(yourProductsList);
// ...
DetailsActivity.java:
// get the same list
ProductManager.getInstance().getProducts();
// ...
Статические переменные разделяются между экземплярами класса, поэтому нет необходимости в одном элементе –
Это, вероятно, избыток для всего двух видов деятельности, но дизайн, на мой взгляд, лучше. Этот список будет доступен из любого места приложения и может инкапсулировать всю логику, кеширование и другие материалы. –
* но дизайн лучше, на мой взгляд, с чем вы сравниваете? –