0

我是android的新手,我正在处理片段。

我的问题:

我有两个片段,“A”和“B”,我的片段“A”是一个复杂的表单,用户可以添加和删除产品,设置客户信息,付款方式等等。我的片段“B”只显示用户在前一个片段中设置的信息。

但是如果用户按下后退按钮,我将丢失前一个片段中已经设置的所有信息。

我如何在片段 A 上维护这些信息?

谢谢。

4

2 回答 2

1

您应该将 android:id 属性添加到要保存其状态的每个 View 元素。这在android文档中解释:

默认情况下,系统使用 Bundle 实例状态来保存有关您的活动布局中每个 View 对象的信息(例如输入到 EditText 对象中的文本值)。因此,如果您的活动实例被销毁并重新创建,则布局的状态将恢复到之前的状态,而您不需要任何代码。但是,您的活动可能有更多您想要恢复的状态信息,例如跟踪用户在活动中的进度的成员变量。

注意:为了让 Android 系统恢复 Activity 中视图的状态,每个视图必须有一个唯一的 ID,由 android:id 属性提供。

要保存有关活动状态的其他数据,您必须重写 onSaveInstanceState() 回调方法。当用户离开您的活动时,系统会调用此方法,并将 Bundle 对象传递给它,该对象将在您的活动被意外销毁时保存。如果系统必须稍后重新创建活动实例,它会将相同的 Bundle 对象传递给 onRestoreInstanceState() 和 onCreate() 方法。

于 2015-07-23T20:06:07.663 回答
1

您可以使用sharedpreferences保存数据

这样一旦你回到片段,你就可以从 sharedpreferences 加载数据

于 2015-07-23T19:48:11.913 回答