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