Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 即使savedInstanceState不为null,也无法在片段中显示数据_Android_Android Fragments_Onsaveinstancestate - Fatal编程技术网

Android 即使savedInstanceState不为null,也无法在片段中显示数据

Android 即使savedInstanceState不为null,也无法在片段中显示数据,android,android-fragments,onsaveinstancestate,Android,Android Fragments,Onsaveinstancestate,我想在屏幕位置改变后,在一个片段中保存和恢复数据 为此,我使用“onSaveInstanceState”方法保存数据 @Override public void onSaveInstanceState(Bundle outState) { outState.putString("date", dateTextView.getText().toString()); outState.putString("time", timeTextView.getText().toString(

我想在屏幕位置改变后,在一个片段中保存和恢复数据

为此,我使用“onSaveInstanceState”方法保存数据

@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putString("date", dateTextView.getText().toString());
    outState.putString("time", timeTextView.getText().toString());
    outState.putString("hour", hour);
    outState.putString("minute", minute);
    outState.putString("topicGroup", currentTopicGroup);
    outState.putString("topic", currentTopicTitle);
    outState.putString("level",currentLevelName);
    outState.putDouble("totalPrice", totalPrice);
    outState.putString("activityTitle", getActivity().getTitle().toString());
    super.onSaveInstanceState(outState);
}
但是,当我尝试使用下面的“onCreateView”方法恢复/显示数据时,即使“savedInstanceState”变量不为null(我的日志显示正确的值),也不会发生任何事情


我尝试了很多事情却没有成功。有谁能给我一些建议吗?提前感谢。

问题出在您试图恢复视图状态的地方。 看一看:

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    ...
    if (savedInstanceState != null) {
        //Restore the fragment's state here
    }
}
...
@Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

//Save the fragment's state here
}
该主题已经对StackOverflow进行了深入的评论。
只要看一看,你就会发现很多关于savedState和恢复它的信息

问题是每次创建并添加带有空捆绑数据的新
片段
实例时。在活动中添加新的
片段时,请执行以下操作

if (savedInstanceState == null) {
     getSupportFragmentManager().beginTransaction().add(R.id.frag_container, new Frag1()).commit();
}
在活动的
onCreate()
中或添加片段的任何位置,执行以下操作

if (savedInstanceState == null) {
     getSupportFragmentManager().beginTransaction().add(R.id.frag_container, new Frag1()).commit();
}

我也尝试过这个解决方案。但我也有同样的问题。“savedInstanceState”不为空,但我可以在文本视图中显示我的数据。@重写onActivityCreated(Bundle savedInstanceState)中的公共void不在onCreateView()中,是否确实在此处而不在onCreateView()中?您的活动可能还没有准备好可视化您的内容,这就是为什么您应该在onActivityCreated中执行此操作的原因。希望这有帮助。最后,我解决了我的问题。谢谢你的帮助:-)同上。我试过这个方法。但我总是有同样的问题。我无法显示片段的数据。请在添加片段的活动中发布代码