【问题标题】:Retrieving a fragment state检索片段状态
【发布时间】:2018-06-27 14:23:02
【问题描述】:

我的片段中有一个表单,如果屏幕关闭或用户按下主页按钮,我想恢复填充的数据。

当屏幕熄灭时,onSaveInstanceStateonPause 方法被调用,我可以在其中一种方法中保持状态。

例如

@Override
public void onPause() {
    super.onPause();

    for (CustomTextInputLayout inputField : formHelper.getCustomTextInputLayoutList()) {
        editor.putString(inputField.getId() + "", inputField.getText());
        editor.apply();
    }
}

或者我可以通过outState bundle 坚持onSaveInstanceState

但是当我尝试检索保存的状态时,我找不到合适的方法。我尝试了onActivityCreatedonViewStateRestored,但是在屏幕关闭之后,这些方法都没有被调用,然后片段又回到了前台。

这个问题的最佳解决方案是什么?

任何帮助将不胜感激。

【问题讨论】:

    标签: java android android-fragments onsaveinstancestate android-savedstate


    【解决方案1】:

    当您使用onSaveInstanceState 将状态保存到Bundle 时。 您将在创建Fragment 期间收到此Bundle,因此只需在onCreate 方法中检查它。

    public void onCreate(@Nullable Bundle savedInstanceState)
    

    【讨论】:

    • onCreate 在 onPause 或 orSavedInstanceState 之后不会被调用。
    • 是的,它不会在 onPause 之后立即调用,但是您的片段在销毁之前仍保留其数据,您无需恢复任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多