0
首先,我已经尝试了所有可用的解决方案,但我仍然没有得到这个问题的答案。如何在更换碎片时保存数据
我有一个活动,有几个片段将填充ViewPager,我填充viewPager的方式是这样。
fragment = getSupportFragmentManager();
fragment.beginTransaction()
.replace(R.id.homepageVp, newFrag)
.addToBackStack(null)
.commit();
suppouse有片段A和I替换它通过使用以上的代码片段B,然后在这里是我的问题,是有可能从片段A移动到片段B并使用上面的代码移回片段A但仍包含以前替换(第一个)的数据。
我已经使用
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString(VAR_KEY, jsonResult);
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
jsonResult = savedInstanceState.getString(VAR_KEY);
}
片段A里面试过了,这是我的理解,是的onSaveInstanceState执行后保存jsonResult变量,这样当再次执行onActivityCreated创建我的活动,并把以前的值成jsonResult变量。但那不起作用,所以也许我犯了一个错误,或者我对碎片生命周期的理解不正确。
为什么不创建一个单独的类来存储JSON和从任何地方访问它? –
你试过onCreateView而不是onActivityCreated? – phpdroid