如何在onBackPressed之后保留片段中的信息?

时间:2015-07-23 19:33:57

标签: android android-fragments android-activity android-fragmentactivity onbackpressed

我是android的新手,我正在使用片段。

我的问题:

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

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

如何在片段A上维护此信息?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用sharedpreferences

保存数据

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

答案 1 :(得分:1)

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

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

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

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