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