gpt4 book ai didi

Android fragment 状态在 onCreateView 方法和 onActivityCreated 方法中始终为 null

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:40:14 26 4
gpt4 key购买 nike

我在 fragment 类中使用了多个选项卡。我未能保存 fragment 状态。我使用了 onSaveInstanceState() 方法并在其中保存了一个参数。但是当我回到这个 fragment 时,保存的状态总是显示“null”。我尝试了所有与此相关的问题和答案。我仍然面临同样的问题。请任何人帮助我解决这个问题。

我的代码

 @Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setRetainInstance(true);
super.onCreate(savedInstanceState);
Log.d("savedInstanceStateInfo1", "" + savedInstanceState);
if (null != savedInstanceState) {
nAndroids = savedInstanceState.getInt("nAndroids");
Log.d("NANDROIDS", "" + nAndroids);
}
}
// Log.d("State in oncreate : ",""+savedInstanceState);

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setRetainInstance(true);
Log.d("SavedinstanestateInfo", "" + savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
if (container == null) {
return null;
}
// final ActionBar ab=getActivity().getSupportActionBar();

View v = (LinearLayout) inflater.inflate(R.layout.infotab, container, false);
Log.d("SavedinstanestateInfo", "" + savedInstanceState);
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putInt("nAndroids", nAndroids);

super.onSaveInstanceState(outState);
}

最佳答案

1) 显然,当使用 setRetainInstance(true) 时,onRestoreInstanceState 的 Bundle 为 null。

https://stackoverflow.com/a/8488107/1011746

2) 没有必要,但更习惯于在对 outState 进行任何修改之前调用 super.onSaveInstanceState(outState)。与 onRestoreInstanceState(Bundle outState) 中的 super.onRestoreInstanceState(outState) 相同。

关于Android fragment 状态在 onCreateView 方法和 onActivityCreated 方法中始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009676/

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