gpt4 book ai didi

android - SavedInstanceState 在 fragment 中始终为空

转载 作者:IT老高 更新时间:2023-10-28 21:45:59 26 4
gpt4 key购买 nike

我有一个使用 XML 附加到 Activity 的 fragment (以及 Activity 中的 setContentView())。 A 有一个问题,因为我的 fragment 中有非常动态的 View ,所以当方向改变时我必须恢复所有的观点状态。

我遇到了问题,因为我正在使用类似的东西:

public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putBoolean("restore", true);
outState.putInt("nAndroids", 2);
}

但是在调用带有参数 Bundle savedInstanceState 的方法(如 onCreateView 等)时方向更改后,我的 savedInstanceState 始终为空。

我不是 Android 的菜鸟,但现在因为这个问题我很生气......

public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);

if (savedInstanceState == null) {
//smth
} else {
// smthelse THIS IS NEVER REACHED BECAUSE BUNDLE IS ALWAYS NULL
}

getListView().setDivider(getResources().getDrawable(R.drawable.list_divider));
}

最佳答案

所有问题都在于我没有为 XML 中的 fragment 声明 android:id。 Android 需要 ID 或 TAG 来识别存储的 fragment 并复制其中的所有元素。所以伙计们,请记住 - 每个 fragment 实例都需要唯一的 id 或标签!

此外,当声明 setRetainInstance(true) 时,bundle 应始终返回 null。

关于android - SavedInstanceState 在 fragment 中始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20550016/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com