【问题标题】:How to keep informations in fragment after onBackPressed?onBackPressed后如何将信息保存在片段中?
【发布时间】:2015-07-23 19:33:56
【问题描述】:

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

我的问题:

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

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

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

谢谢。

【问题讨论】:

  • 从A搬到B的时候你在用什么?你在同一个活动中吗?有什么不同吗?你是用 B 代替 A 吗?

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


【解决方案1】:

您可以使用sharedpreferences保存您的数据

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      相关资源
      最近更新 更多