gpt4 book ai didi

java - 如何保存 fragment 的状态

转载 作者:行者123 更新时间:2023-11-30 02:46:23 24 4
gpt4 key购买 nike

我有多个 fragment ,其中包含我要保存的数据,并且能够从不同的 fragment 访问。

如果我只想保存特定 fragment 的状态,我该怎么做?

这是我目前的导航方式:

fragment “1”

  case R.id.imageButton1:

Fragment fragment2;
fragment2 = new Frag2();
//fragment2.setArguments(args);
FragmentManager frgManager = getFragmentManager();
// frgManager.putFragment(bundle, key, fragment)
frgManager.beginTransaction().replace(R.id.content_frame, fragment2)
.commit();

break;

fragment “2”

switch(v.getId()){


case R.id.imageButton2:
Fragment fragment;
fragment = new Frag1();
fragment.setArguments(fragment.getArguments());
android.app.FragmentManager frgManager = getFragmentManager();
frgManager.beginTransaction().replace(R.id.content_frame, fragment)
.commit();
break;

case R.id.imageButton1:
fragment = new LifeFrag3();
android.app.FragmentManager frgManage = getFragmentManager();
frgManage.beginTransaction().replace(R.id.content_frame, fragment)
.commit();
break;

我也曾尝试通过将值存储在 HashMap 中来传递数据,然后使用 on pause 和 on resume 来传递 key ,但我没有成功。 :/

最佳答案

@Override
public void onCreate(Bundle savedInstanceState) {
...
if (savedInstanceState != null) {
mContent = getSupportFragmentManager().getFragment(
savedInstanceState, "mContent");
}
}

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
getSupportFragmentManager().putFragment(outState, "mContent", mContent);
}

关于java - 如何保存 fragment 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24929193/

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