Android SDK片段 - 在多个活动中保留State

时间:2012-08-14 15:57:58

标签: android android-layout android-fragments

我正在开发一个应用程序,其中我的主要活动在显示产品的片段的左侧。根据选择,横向视图的右侧部分显示详细信息,可以完全指定产品的属性。如果应用程序以横向模式运行,则会出现这种情况。如果方向更改为纵向模式,则用户首先选择产品,然后通过各个专用活动指定产品的属性,其中每个活动仅包含前面提到的横向视图的一个片段。

当我在运行时旋转屏幕时,问题就出现了。假设我以纵向模式启动应用程序,并选择第一个产品(活动A,片段A)。下一个屏幕(单独的Activity,称为活动B)将包含一个片段B,我可以在其中指定产品的属性1。现在我旋转屏幕。然后,应用程序将显示选择第一个产品的横向视图,右侧显示专用于产品配置的所有片段。是否存在一种解决方案,我可以保留用户在单独的活动(即片段B,活动B)中完成的配置,使得景观视图接收状态,使得详细视图可以正确显示迄今为止所做的配置?

总结:

我在活动A中,只包含产品清单(片段A) 我选择第一个 然后我进入了一个新的活动B,其中显示了片段B. 然后我旋转我的屏幕 然后我回到活动A,现在包含在左侧片段A(列表)和右侧(包括其他)片段B. 我希望活动B中的片段B的状态在活动A,片段B中可用。

希望我能完全指出我的问题。

TIA 杰拉德

1 个答案:

答案 0 :(得分:0)

我现在可以想到两种解决方案:

  1. 在这种情况下忘记2个活动,并且只用1来解决这个场景。我有多个项目正是满足这些要求。在纵向模式下,我使用ViewSwitcher或ViewFlipper来全屏显示片段A或片段B。在景观上,事物与你描述的一致。这样,2个片段可以相互通信,片段B可以更新片段A上的选择。

  2. 使用.startActivityForResult()启动活动B,因此它可以为活动A提供包含当前选择的结果。