在 Activity 和 Fragment 之间有一个共享对象:运行时更改?
Having a shared Object between Activity and Fragment: Runtime changes?
我有一个名为 BaseActivity
的 Activity,托管多个片段。
BaseActivity
有一个 public 字段 Object o
片段通过调用 Object o = ((BaseActivity) getActivity()).o;
访问它,它在片段 onCreate
中初始化。
这行得通,但我遇到了运行时配置更改方面的问题。似乎片段 onCreate
在 BaseActivitys
onCreate
之前被调用,所以我无法保留 Bundle
中保存在 onSaveInstanceState
中的对象。
有没有一种方法可以确保活动可以在 Fragment 尝试访问它之前从已保存的 Bundle 中保留它的对象?
试试这个..
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Object o = ((BaseActivity) getActivity()).o;
}
这确保 activity 的 onCreate 已完成执行。
我有一个名为 BaseActivity
的 Activity,托管多个片段。
BaseActivity
有一个 public 字段 Object o
片段通过调用 Object o = ((BaseActivity) getActivity()).o;
访问它,它在片段 onCreate
中初始化。
这行得通,但我遇到了运行时配置更改方面的问题。似乎片段 onCreate
在 BaseActivitys
onCreate
之前被调用,所以我无法保留 Bundle
中保存在 onSaveInstanceState
中的对象。
有没有一种方法可以确保活动可以在 Fragment 尝试访问它之前从已保存的 Bundle 中保留它的对象?
试试这个..
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Object o = ((BaseActivity) getActivity()).o;
}
这确保 activity 的 onCreate 已完成执行。