我有一个活动,显示产品列表和详细视图,我可以在其中编辑这些产品。我想从两个活动中访问相同的产品列表。
如何在这些多项活动之间存储/使用此全局数据?
答案 0 :(得分:2)
您可能希望使用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();
// ...
答案 1 :(得分:0)
1)您可以在应用程序级别或基本活动中将数组列表定义为静态。
2)使用serializable或parcelable将数组List传递给其他Activity。
3)您在数组列表中有更多数据,然后您可以使用SharedPreferences。