我是android的新手,我正在使用片段。
我的问题:
我有两个片段,“A”和“B”,我的片段“A”是一个复杂的形式,用户可以添加和删除产品,设置客户信息,付款方式等等。我的片段“B”只显示用户在上一个片段中设置的信息。
但是如果用户按下后退按钮,我将丢失之前片段中已设置的所有信息。
如何在片段A上维护此信息?
感谢。
答案 0 :(得分:1)
您可以使用sharedpreferences
保存数据这样一旦你回到片段,就可以从sharedpreferences加载数据
答案 1 :(得分:1)
您应该将android:id属性添加到要保存的状态的每个View元素。 这在android文档中解释了:
默认情况下,系统使用Bundle实例状态来保存活动布局中每个View对象的信息(例如输入EditText对象的文本值)。因此,如果您的活动实例被销毁并重新创建,则布局的状态将恢复到之前的状态,而您无需代码。但是,您的活动可能包含您要恢复的更多状态信息,例如跟踪用户在活动中的进度的成员变量。
注意:为了让Android系统恢复活动中的视图状态,每个视图必须具有唯一的ID,由android:id属性提供。
要保存有关活动状态的其他数据,必须覆盖onSaveInstanceState()回调方法。系统在用户离开您的活动时调用此方法,并将其传递给Bundle对象,该对象将在您的活动意外销毁时保存。如果系统必须稍后重新创建活动实例,它会将相同的Bundle对象传递给onRestoreInstanceState()和onCreate()方法。