我知道这是一个老问题,但既然我在这里:)
无论如何,我所做的就是传递我想要的项目的 id,然后使用 Application 来保存我的数据。
例如,假设我有一个名为 Order 的类,每个订单都有很多 Line(s) 像这样
class Order {
UUID _id;
List<Line> _lines = new ArrayList<>();
}
class Line {
UUID _id;
Product _product ;
BigDecimal _price;
int _quantity;
}
等等
所以我有一个应用程序的实现,我在其中存储所有(在内存中)订单,如下所示:
public class App extends Application {
public static final List<Order> Orders = new Order();
public static final Order GetOrder(UUID id) {
for (Order o : Orders) {
If(o.get_id().Equals(id))
return o;
}
return null;
}
}
然后,如果我希望通过特定的命令,我会执行以下操作:
Intent i = new Intent(this, OrderEdit.class);
i.putExtra(OrderEdit.ID, my_order.get_id().ToString());
startActivity(i);
另一方面:
UUID id = UUID.fromString(getArguments().getExtra(ID));
App.GetOrder(id);
这样你总是有一个参考通过。